練習 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⏎
- 【プログラムの実行例】(その2,その3)
data0801a-2.txt … 平均値は 34.79
data0801a-3.txt … 平均値は 9.68
【過去にあったミス(減点となり,やり直しを命じられる)】
■ 3 種類の実行例を確認せずに提出してしまっている.
■ マクロ SIZE の値が 100 になっていない.
■ 平均値を求める際に SIZE ではなく 100 や(わざわざ)別の変数で割っている.
■ 平均値の算出の際に double 型へのキャストを忘れている.
■ 平均値を求める前段階として合計値を求める必要があるが,合計に使う変数を 0 で初期化していない.
■ インデントに不備がある(VSCode 上でインデントを自動で揃える作業をやっていない).
ミスが無いことを確認したら次の問題へ → [ 練習2 (p0802a.c) ]