練習 2(提出プログラム名:p0402.c)
サンプルプログラム 2 (sample2.c) を p0402.c という別の名前のファイルにコピーしなさい.そして,p0402.c を編集して以下の例のように実行できるプログラムを作りなさい.
このプログラムでは整数を繰り返し読み込み(0 を入力したら終わり),それらの合計値と平均値を表示させている.ただし,平均値は小数点以下第2位までを表示させるものとする.なお,平均値の算出にあたって,最後に入力した 0 は個数に含めないものとする.
なお,このプログラムでは double 型の変数を用意してはいけません.
※この問題は do-while 文の練習が目的なので,必ず do-while を使うこと(それ以外の構造で作った場合は不正解と見なす).
【ヒント】
この問題では平均値を求める際に注意が必要です.
入力される値とそれらの合計値,ならびにそれらの個数はいずれも int 型の整数です.したがって,そのまま合計値を個数で割ると「int 型と int 型の割り算」になって小数点以下が切り捨てられます.
第 2 回の講義で学んだように,その場合は割り算の分子の方だけ double 型にキャストしてあげる必要があります.
- 【プログラムの実行例】(その1)※赤字は実行時にキーボードから入力する内容
※サンプルプログラムでの「入力を終了します」という表示はこの問題では不要なので削除せよ
整数を 1 つ入力してください:30 整数を 1 つ入力してください:-5 整数を 1 つ入力してください:27 整数を 1 つ入力してください:0 合計値は 52 です⏎ 平均値は 17.33 です⏎
- 【プログラムの実行例】(その2)※講義で説明したリダイレクトによるデータ入力(data2-1.txt を使用)※ Mac 環境の人は a ではなく ./a.out と入力してください.
a < data2-1.txt 整数を 1 つ入力してください:整数を 1 つ入力してください: ... (途中省略) ... ... (途中省略) ... 整数を 1 つ入力してください:整数を 1 つ入力してください: 合計値は 1132 です⏎ 平均値は 45.28 です⏎
- 【プログラムの実行例】(その3〜5)※リダイレクトによるデータ入力
同様にして
data2-2.txt の場合:合計値は 3869,平均値は 48.36
data2-3.txt の場合:合計値は 4410,平均値は 50.11
data2-4.txt の場合:合計値は 4815,平均値は 48.64
【過去にあったミス(減点となり,やり直しを命じられる)】
■ 上の5種類の実行例と答えが違っている(きちんと確認していない).
(例1)平均値が違っている.
(例2)小数点以下の桁数指定の方法を間違っている.
(例3)サンプルプログラムでの「入力を終了します」という表示が残っている.
この問題では不要なので削除すること.
■ 繰り返しの条件を書き間違えていて無限ループになっている.
■ インデントに不備がある(VSCode 上でインデントを自動で揃える作業をやっていない).
← [ 練習1 (p0401.c) ]
ミスが無いことを確認したら次の問題へ → [ 練習3 (p0403.c) ]