課題 [5] 配列(1/9)

問 1(提出プログラム名:ex0501a.c)

次の仕様のプログラムを ex0501a.c として作りなさい.
①まず,整数 n を読み込む.
②続いて,整数を n 個読み込み,それらを配列へ格納する.
③最後に,配列内の各整数から「最後に読み込んだ整数」を引いた値
 実行例のように番号付きで出力する(番号は 0 ではなく 1 から始めよ).

ただし,
 ● 用意する配列の長さはマクロ SIZE で指定すること.
 ● マクロ SIZE の値は 8 と定義すること.
 ● マクロの定義部分(#define SIZE 8)以外では 8 や 7 と直接書かないこと.
 ● 最初に読み込む n は,1 以上 SIZE 以下の整数であると仮定してプログラムを作ってよい.

【気を付けるべき点】
配列には n 個の整数が格納されていきますので,最後に読み込んだ数字は(仮に配列名を a とした場合)a[SIZE-1] ではなく a[n-1] になることに注意しましょう.
この問題では配列の長さを SIZE にしてありますが,これはあくまでも「最大で SIZE 個まで格納できる」だけであって,すべてを必ず使うわけではありません(この場合は n で決まります).

また,n を読み込んだ後の「個の整数を入力してください:」というメッセージでは
n に対応している点も見落とさないようにしてください.

  • 【プログラムの実行結果】(その1)赤字は実行時にキーボードから入力する内容
    ※出力する番号は 0 ではなく 1 から始まっているか,[ ] で囲まれているか,数字とその個数は合っているか,それぞれ確認せよ.
データ数 n を入力してください:3
3 個の整数を入力してください:
10 15 11
[1] -1
[2] 4
[3] 0
  • 【プログラムの実行結果】(その2)赤字は実行時にキーボードから入力する内容
データ数 n を入力してください:1
1 個の整数を入力してください:
123
[1] 0
  • 【プログラムの実行結果】(その3)赤字は実行時にキーボードから入力する内容
データ数 n を入力してください:4
4 個の整数を入力してください:
5 0 5 2
[1] 3
[2] -2
[3] 3
[4] 0

【過去にあったミス(実際に減点となり,やり直しを命じられた例)】
実行の画面出力が上の例と違うきちんと確認していない).
 (例1)表示する値が違っていたり,正負が逆になっている.
 (例2)メッセージが「8 個の整数を入力してください:」に固定されている.
 (例3)出力される番号が 0 から始まってしまっている([1][0] になっている)
n 個の整数を読み込んだり出力したりする際に SIZE を繰り返しの条件に使ってしまっている.
インデントに不備がある(VSCode 上でインデントを自動で揃える作業をやっていない).


ミスが無いことを確認したら次の問題へ → [ 問2 (ex0502a.c) ]