練習 [8] 関数①(3/5)

練習 3(提出プログラム名:p0803.c)

サンプルプログラム 3 (sample3.c)p0803.c という別の名前のファイルにコピーしなさい.そして,p0803.c を以下の指示に従って編集以下の実行例のように実行できるプログラムを作りなさい.
この問題ではサンプルプログラム 3 と同様に配列の中身を出力し,さらに平均値も出力させている.

【編集すべき内容】
①マクロ SIZE の定義値を 5 から 100 に変更する.
②関数 print_array の中では配列内の要素をすべて出力するだけでなく,それらの平均値も出力するよう変更する.ただし,平均値の出力は小数点以下第 2 位までとする.

【注意】
この問題では(p0802 とは逆で) main の内容を書き換えてはいけません
また,マクロの定義部分以外に 100 と直接書いてはいけません.

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

  • 【プログラムの実行例】(その1)赤字は実行時にキーボードから入力する内容(data08-3-1.txt を使用)※Mac の人は a ではなく ./a.out
a < data08-3-1.txt
100 個の整数を入力してください:
[0] 340
[1] -174
[2] -120
.... (中略) ....
[98] 191
[99] 384
平均値 = -6.41
※平均値の出力で末尾に改行(\n)を入れるのを忘れないこと!
  • 【プログラムの実行例】(その2,その3)
    data08-3-2.txt … 平均値は 34.79
    data08-3-3.txt … 平均値は 9.68

【過去にあったミス(減点となり,やり直しを命じられる)】
3 種類の実行例を確認せずに提出してしまっている.
■ マクロ SIZE の値が 100 になっていない
■ 平均値を求める際に SIZE ではなく 100 や(わざわざ)別の変数で割っている
■ 平均値の算出の際に double 型へのキャストを忘れている.
■ 平均値を求める前段階として合計値を求める必要があるが,合計に使う変数を 0 で初期化していない
インデントに不備がある(VSCode 上でインデントを自動で揃える作業をやっていない).


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