<問題>
0から19まで20の数を格納した配列を、以下のように出力せよ。
<実行結果>
0 0 1 0 1 2 0 1 2 3 0 1 2 3 4 0 1 2 3 4 5 0 1 2 3 4 5 6 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 8 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 10 11 0 1 2 3 4 5 6 7 8 9 10 11 12 0 1 2 3 4 5 6 7 8 9 10 11 12 13 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
<コメント>
解答例 #include <stdio.h> #define N 20 /* マクロ コンパイル時に置き換え。変数ではありません */ int main(void) { int i, j; int a[N]; for (i = 0; i < N ; i++) a[i] = i; /* 以下、適切にプリントしよう。この例のほかにも、いろいろな出力を試してみよう */ /* 下のプログラムでは、変数i, j は規則的に変化(増加) 「ステッパー変数」 stepper */ /* 毎回、i より後ろをプリントなら for (i = 0; i < N ; i++) { for (j = i; j < N; j++) printf("%3d", a[j]); printf("\n"); } */ /* 毎回、iより前、つまり、0番目からi番目までをプリント。*/ for (i = 0; i < N ; i++) { for (j = 0; j <= i; j++) printf("%3d", a[j]); printf("\n"); } return 0; }