練習 [3] while 文(2/5)

練習 2(提出プログラム名:p0302a.c)

以下の例のように実行できるプログラムを p0302a.c として作りなさい.
このプログラムでは整数を繰り返し読み込み(0 を入力したら終わり),それらの合計値と平均値を表示させている.ただし,平均値は小数点以下第2位までを表示させるものとする.なお,平均値の算出にあたって,最後に入力した 0 は個数に含めないものとする.
なお,このプログラムでは double 型の変数を用意してはいけません

【ヒント】
この問題では平均値を求める際に注意が必要です.
入力される値とそれらの合計値,ならびにそれらの個数はいずれも int 型の整数です.したがって,そのまま合計値を個数で割ると「int 型と int 型の割り算」になって小数点以下が切り捨てられますのでキャスト使うといった工夫が必要です.

  • 【プログラムの実行例】(その1)赤字は実行時にキーボードから入力する内容
整数を 1 つ入力してください:30
整数を 1 つ入力してください:-5
整数を 1 つ入力してください:27
整数を 1 つ入力してください:0
合計値は 52 です
平均値は 17.33 です
  • 【プログラムの実行例】(その2)リダイレクトによるデータ入力(data2-1.txt を使用)※ Mac 環境の人は a ではなく ./a.out と入力してください.
    (リダイレクトについては一般クラス向け講義資料 p23 を見てください.データファイルも同資料と一緒に Moodle に置いてあります.)
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 上でインデントを自動で揃える作業をやっていない).


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