C言語で分からないfor文の問題があります

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
msc

C言語で分からないfor文の問題があります

#1

投稿記事 by msc » 15年前

自分は今C言語の勉強をしているのですが
いまfor文のところで躓いています。
問題の内容は

 例に示すように、読み込んだ整数の段数をもつピラ
ミッドを表示するプログラムを作成せよ

(例)
ピラミッドを作りましょう。
何段ですか:3
*
***
*****


というものです
そして少し前の問題で

/*
直角三角形(右上が直角)を表示
*/

#include <stdio.h>

int main(void)
{
int i, j, In;

printf("何段ですか:");
scanf("%d", &In);

for (i = 1; i <= In; i++) { /* i行(i = 1, 2, … , In) */
for (j = 1; j <= In - i; j++) /* In - i個の' 'を表示 */
putchar(' ');
for (j = 1; j <= i; j++) /* i個の'*'を表示 */
putchar('*');
putchar('\n'); /* 改行 */
}

return (0);
}

このとような問題があったのですが
これをもとにプログラムを組もうと思ったのですがなかなかうまくいかず
よく無限ループしたりおもったようにはなってはくれませんでした。
iに毎回2を+するという事をすればいいと思うのですが・・
これはどうすればいいでしょうか?
長文でもうしわけありませんがアドバイスをお願いします
後自分のC言語の知識はforまでです

みけCAT

Re:C言語で分からないfor文の問題があります

#2

投稿記事 by みけCAT » 15年前

確認していませんが
上のプログラムの
j <= i
j <= i*2-1
にしたらどうですか?

msc

Re:C言語で分からないfor文の問題があります

#3

投稿記事 by msc » 15年前

みけCATさんありがとうございました。
解決できました。
これは自分がfor文の動き方をしっかり理解してれば簡単にわかったことですね。
すみません勉強不足です。
それとこれは少し違う質問になるのですが、

for (i = 1; i <= In; i++) { /* i行(i = 1, 2, … , In) */
for (j = 1; j <= In - i; j++) /* In - i個の' 'を表示 */
putchar(' ');
for (j = 1; j <= i*2-1; j++) /* i個の'*'を表示 */
putchar('*');
putchar('\n'); /* 改行 */

これのfor文の動きを教えていただけないでしょうか?
また次の時に失敗しないためにしりたいです。

みけCAT

Re:C言語で分からないfor文の問題があります

#4

投稿記事 by みけCAT » 15年前

書き忘れましたが、上のレスの変更だけをして下さい。
iに毎回2を足す必要はありません。

追記
返信がかぶってしまい、すみません。 画像

msc

Re:C言語で分からないfor文の問題があります

#5

投稿記事 by msc » 15年前

みけCATさんありがとうございました

閉鎖

“C言語何でも質問掲示板” へ戻る