問 2(提出プログラム名:ex0502a.c)
次の仕様のプログラムを ex0502a.c として作りなさい.
(1)まず,整数 n を読み込む.
(2)続いて,整数を n 個読み込み,それらを配列へ格納する.
(3)最後に,配列内の整数の中の最大値と最小値を出力する.
ただし,
● 用意する配列の長さはマクロ SIZE で指定すること.
● マクロ SIZE の値は 8 と定義すること.
● マクロの定義部分(#define SIZE 8)以外では 8 や 7 と直接書かないこと.
● 最初に読み込む n は,1 以上 SIZE 以下の整数であると仮定してプログラムを作ってよい.
【最大値と最小値を求める定番の手順(アルゴリズム)】
ここでは配列名を a とし,最大値を max,最小値を min として求めるものとする.
(3) の処理内容は以下のように行う(配列への整数の格納がすべて完了した後に行うこと)
① 配列内の先頭の要素を仮の最大値・最小値とおく:
max = a[0];
min = a[0];
② for ( i = 0; i < n; i++ ) { ... } として次の③と④を繰り返す:
③ もし a[i] > max ならば(より大きな値が見つかったので) max = a[i]; とする.
④ もし a[i] < min ならば(より小さな値が見つかったので)min = a[i]; とする.
⑤ 最後に max と min を出力する.
- 【プログラムの実行結果】(その1)※赤字は実行時にキーボードから入力する内容
データ数 n を入力してください:8 8 個の整数を入力してください:⏎ 1 2 3 4 5 6 7 -1 最大値 = 7⏎ 最小値 = -1⏎
- 【プログラムの実行結果】(その2)※赤字は実行時にキーボードから入力する内容
データ数 n を入力してください:3 3 個の整数を入力してください:⏎ 2 2 2 最大値 = 2⏎ 最小値 = 2⏎
- 【プログラムの実行結果】(その3)※赤字は実行時にキーボードから入力する内容
データ数 n を入力してください:1 1 個の整数を入力してください:⏎ 3 最大値 = 3⏎ 最小値 = 3⏎
【過去にあったミス(実際に減点となり,やり直しを命じられた例)】
■ 実行の画面出力が上の例と違う(きちんと確認していない).
(例1)最大値と最小値が逆に出力されている.
(例2)出力される最大値・最小値が違っている.
■ 上に書かれている手順を見落としていて,無駄に複雑なプログラムになっていたり,
手順が間違っていたりする.
■ インデントに不備がある(VSCode 上でインデントを自動で揃える作業をやっていない).
← [ 問 1 (ex0501a.c) ]
ミスが無いことを確認したら次の問題へ → [ 問3 (ex0503a.c) ]