- ベストアンサー
C言語で3ループについて教えてください
- C言語のプログラム中で3つのループを使用し、特定のパターンを表示する方法について教えてください。
- プログラム中の1つ目のループは、行の数を表す変数iを使用して、1から4までの範囲で繰り返します。
- 2つ目のループは、列の数を表す変数jを使用し、1からiまでの範囲で繰り返します。このループ内で、*を表示します。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
繰り返したいものをforの中に入れなければなりません。 実際、 printf("*"); を繰り返す部分は for (j=1;j<=i;j++) { printf("*"); } としてますよね。 なので、4行の表示を3回繰り返すためには、その部分の前に for (k=1;k<=3;k++) { 後に } を入れます。 具体的には、 for(i=1; i<=4; i++) { の前と printf("\n"); } の後になります。
その他の回答 (2)
- m-take0220
- ベストアンサー率60% (477/782)
> 具体的には、 > > for(i=1; i<=4; i++) { > > の前 に for (k=1;k<=3;k++) { > と > > printf("\n"); > } > > の後に } > なります。 という意味です。 for (k=1;k<=3;k++) {} だと、繰り返す部分が {} (つまり何もない)になるので、何も起こりません。
お礼
コメント、ありがとうございます。
- kmee
- ベストアンサー率55% (1857/3366)
プログラムの構造をよく考えてみましょう。 やるたいことは、「三角形の表示を3回繰り返したい」ですよね。Cっぽく書けば for( k=1;k<=3; ++ k ( { 三角形を表示 ; } 三角形を表示 を具体的に例にそって書けば「n行目は*がn個と改行で、1~4行目まで繰り返す」ですから、これもCっぽく表現すれば for(i=1; i<=4; i++) { i個の*を表示 ; 改行を表示 ; } そして、 i個の*を表示は同様に for(j=1; j<=i; j++){ *を表示 ; } ...と、ここまでを逆に辿っていったら1つのプログラムになりませんか? プログラミングするならでは、自分がやろうとしていることがどうやったら実現できるか、を考え分析するようにしましょう。
お礼
コメントありがとうございます
お礼
説明、ありがとうございます。 この説明だと、 int i,j,k; for(i=1; i<=4; i++) { for(k=1; k<=3; k+=i){ } for(j=1; j<=i; j++){ printf("*"); } printf("\n"); } for(k=1; k<=3; k+=j){ } こうなりますよね? 結果は、上記と同じになってしまいます。 * ** *** **** このようになってしまいました。 すみません、返事を送ってもらえると助かります。