- ベストアンサー
小数の表示が・・・。
初歩的な質問で申し訳ないです。 「2個の整数値を標準入力装置(キーボード)から読み込み、その平均値を計算して結果を標準出力装置(ディスプレイ)に出力するというプログラムを書きなさい。小数以下1桁を表示すること。」 という問題を考えていたのですが、上手くいきません。 intじゃダメということはわかるのですが、floatやdoubleにしたら答えがおかしくなります。 intで割り切れる数字だったらこれでいいみたいですが割り切れない奴を小数1桁表示ができません。 どうすべきでしょうか? #include <stdio.h> main() { int a,b,c; printf("整数a:"); scanf("%d",&a); printf("整数b:"); scanf("%d",&b); c=(a+b)/2; printf("平均値は%dです。",c); }
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
cをdoubleで宣言した後で c = (a + b) / 2.0; printf("平均値は%.1fです。", c); としてください。
その他の回答 (1)
- yatokesa
- ベストアンサー率40% (201/496)
回答No.1
printf の書式を見てください。 表示桁数(小数点も含む)を表す書式の指定ができます。 %5.1f とか %.1f とすると小数点第1位までの表示書式になります。 他にも色々あるので調べてみてください。 整数でやる場合、数値を10倍して答えを出すときに10で割った値を整数部、10で割った余りを小数部に指定することででもできますよ。
質問者
お礼
回答ありがとうございます。 %.1fというのも可能なんですね。知りませんでした。
お礼
回答ありがとうございました。 うまくいきました(^-^)