課題 [2] 演算とデータ型(4/9)

問 4(提出プログラム名:ex0204.c)

3 つの整数 x, y, z を読み込み,それらの平均値小数点以下第 2 位まで出力するプログラムを作成しなさい.(x, y, z はいずれも int 型で用意しなさい.double 型で用意してはいけません
ただし,printf での出力では小数点以下の桁数を指定するだけとせよ(整数部分を含めた全体の桁数は指定しないこと).
提出するソースファイル(ソースプログラム)のファイル名は ex0204.c としなさい.

【ヒント】
単純に (x+y+z)/3 で計算させてしまうと整数どうしの割り算であるために小数点以下が切り捨てられてしまいます.この問題の場合は分子 (x+y+z) の方を double 型へキャストするとよいです.

  • 【プログラムの実行結果】(その1)赤字は実行時にキーボードから入力する内容
    printf での書式指定で %.2f と書くべきところを誤って %0.2f と書いてしまっていないか確認せよ
    (後者が間違いであることは講義スライド p41 で説明している)
x を入力してください:5
y を入力してください:-1
z を入力してください:12
平均値 = 5.33
  • 【プログラムの実行結果】(その2)赤字は実行時にキーボードから入力する内容
x を入力してください:10
y を入力してください:2
z を入力してください:-5
平均値 = 2.33

【過去にあったミス(実際に減点となり,やり直しを命じられた例)】
実行の画面出力が上の例と違うきちんと確認していない).
  (例1)double 型へのキャストを適切に使えておらず,上の結果が 5.00 や 2.00 になっている.
  (例2)小数点以下の桁数指定を忘れていて上の結果が 5.333333 や 2.333333 になっている.
  (例3)上の2種類の間違いの両方を犯し,結果が 5.000000 や 2.000000 になっている.
■ 平均値の出力の末尾に改行(\n)を書き忘れている
インデントに不備がある(VSCode 上でインデントを自動で揃える作業をやっていない).


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