課題1.3

<問題>

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;
}