練習 [8] 関数(1/5)

練習 1(提出プログラム名:p0801a.c)
※講義資料(その1)で説明している内容です

まず,このプログラム(p0801a.c)をダウンロードしなさい.
このプログラムは SIZE 個の整数を読み込んで配列に格納した後,
その内容を print_array という名前の関数でもって出力するという構成になっている.

この p0801a.c を以下の指示に従って編集し,
以下の実行例のように実行できるプログラムを作りなさい.

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

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

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

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

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


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