[← 演習のページへ戻る]
サンプルプログラム 4 の内容整数 n を読み込み,* を n 個表示する.ただし,10 個出力するたびに改行を入れる.
1: #include <stdio.h>
2:
3: int main(void){
4: int n, k;
5:
6: printf("整数を一つ入力してください:");
7: scanf("%d", &n);
8:
9: k = 1;
10: while ( k <= n ){
11: printf("*");
12: if ( k % 10 == 0 ){
13: printf("\n");
14: }
15: k++;
16: }
17:
18: printf("\n");
19:
20: return 0;
21: }
9,10-16 行目: k = 1; while ( k <= n ){ ... }7: scanf("%d", &n); 8: 9: k = 1; 10: while ( k <= n ){ 11: printf("*"); 12: if ( k % 10 == 0 ){ 13: printf("\n"); 14: } 15: k++; 16: } 17: 18: printf("\n");サンプルプログラム 4 では,変数 k に「何個目の * を出力しようとしているか」を記録しておき,この値を調べることで繰り返しを行っています. そのため,
11 行目: printf("*");7: scanf("%d", &n); 8: 9: k = 1; 10: while ( k <= n ){ 11: printf("*"); 12: if ( k % 10 == 0 ){ 13: printf("\n"); 14: } 15: k++; 16: } 17: 18: printf("\n");記号 * の出力は単純で,11 行目のように printf で 指定するだけです. ただし,出力のたびに改行するわけではないので,\n は書きません. 12-14 行目: if ( k % 10 == 0 ){ ... }7: scanf("%d", &n); 8: 9: k = 1; 10: while ( k <= n ){ 11: printf("*"); 12: if ( k % 10 == 0 ){ 13: printf("\n"); 14: } 15: k++; 16: } 17: 18: printf("\n");このサンプルプログラムでは「10 個ごとに改行」することになっています. そのため,k が 10 の倍数であるとき,つまり,k が 10 で割り切れるときにのみ改行文字 \n を出力します. 18 行目: printf("\n");10: while ( k <= n ){ 11: printf("*"); 12: if ( k % 10 == 0 ){ 13: printf("\n"); 14: } 15: k++; 16: } 17: 18: printf("\n"); 19: 20: return 0;while 文での繰り返しが終わった後に,再度,改行文字を出力していますが, これは n が 10 の倍数でなかった場合は,改行を行わないままプログラムの実行が終わってしまって表示が見にくくなるのを防ぐためのものです. |