練習 [9] 関数②(4/5)

練習 4(提出プログラム名:p0904.h)
p0904.c ではなく p0904.h を提出なので注意!

まず,このプログラム(p0904.c)ヘッダ(p0904.h)をそれぞれダウンロードしなさい.
そして,p0904.h(p0904.c ではない)を次の指示に従って編集し,以下の実行例のように実行できるようにしなさい.
書き換えるのは p0904.h のみで,p0904.c はコンパイルと実行に使うだけなので間違えないこと)

この問題では,SIZE 個の整数を読み込んでいったんすべて配列へ格納しておき,その中の最小値,最大値,及び平均値をそれぞれ関数で求めている(SIZE はマクロとして定義されている).

【編集すべき内容:次の 2 つの関数を p0904.h の中に追加しなさい】
① 関数 get_min:引数で与えられた配列(長さは SIZE)内の整数の最小値を返す.
 関数は int get_min( int a[] ) … として作成せよ.

② 関数 get_average:引数で与えられた配列(長さは SIZE)内の整数の平均値(double型)を返す.
 関数は double get_average( int a[] ) … として作成せよ.
 ただし,この関数の中で double 型の変数を使ってはいけませんキャストは使ってよい).
 (ヒント)return に指定する戻り値を「 (double)合計値/SIZE 」というかたちで書けばよい.

【注意】
この問題では p0904.h を提出しなさい(p0904.c ではない).
また,マクロの定義部分以外に 100 と直接書いてはいけません.

実際に 100 個の整数を入力するのは大変なので,以下のデータファイルをダウンロードし,リダイレクトによって入力させてください(以下の実行例を参考).
 ● data09-4-1.txt
 ● data09-4-2.txt
 ● data09-4-3.txt

  • 【プログラムの実行例】(その1)赤字は実行時にキーボードから入力する内容(data09-4-1.txt を使用)※Mac の人は a ではなく ./a.out
a < data09-4-1.txt
100 個の整数を入力してください:
入力された値の範囲: -22 以上 118 以下
入力された値の平均値 = 44.44
  • 【プログラムの実行例】(その2,その3)
    data09-4-2.txt … -24 以上 115 以下, 平均値は 48.84
    data09-4-3.txt … -24 以上 112 以下, 平均値は 42.93

【過去にあったミス(減点となり,やり直しを命じられる)】
■ 誤って p0904.c を提出してしまっている.
 (こちらは何も書き換えないので提出しても意味が無い)
3 種類の実行例を確認せずに提出してしまっている.
■ マクロ SIZE の定義部分以外に 直接 100 と書いてしまっている.
■ 平均値の算出の際に double 型へのキャストを忘れている.
■ 平均値を求める前段階として合計値を求める必要があるが,合計に使う変数を 0 で初期化していない
インデントに不備がある(VSCode 上でインデントを自動で揃える作業をやっていない).


ミスが無いことを確認したら次の問題へ → [ 練習5 (p0905.h) ]