- ベストアンサー
C言語超初心者のための平均計算プログラム
- C言語超初心者のための平均計算プログラムの作り方を教えてください。
- int型の最後のprintf文で%fを使用しているのはなぜですか?
- 答えが実数値でなければならないため、%fを使用しています。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
%d にするとna+nb が奇数の時どうなりますか? 少数がつきますよね。(0.5) なので、表示するときは、実数形式にしています。(割る数を実数にしている)
その他の回答 (4)
- ballville
- ベストアンサー率47% (233/487)
Cでは式の中で暗黙の型変換が行われます。 いまの例では、 (na+nb)/2.0 の部分。 naもnbもint型ですが、それを2.0で割ることで、 自動的にdouble型にしています。 下のページが参考になると思います。
お礼
すごいいいサイトを紹介してくれてありがとうございました。
- Oh-Orange
- ベストアンサー率63% (854/1345)
★正しいですよ。質問者さん。 ・実数値は、%f です。 ・ちはみに、『2.0』を表記しないと実数で計算されませんでの『2』ではダメです。 ・実数値の表現は必ず小数点で指定します。定数の場合はね。 ・もう、たくさんの人々のアドバイスがありますので問題は解決ですな。 補足: ・c言語の超初心者ですが『printf』の書式文字列の確認を取りたかったようですね。 ・これから、自分自身に自信を持っても良いですよ。 ・c言語は順調に理解していると思います。 ・最後に頑張って下さい。さようなら。質問者さん。
お礼
本当にありがとうございました。やっぱり専門家さんは、朝でもがんばってるんですね。
- charmer29-2
- ベストアンサー率25% (41/159)
問題を二つに分けて考えるべきでしょう。 ・平均値は整数では表せない。 (na + nb) / 2としたら、小数点以下で切り捨てられます。 従って、(na + nb) / 2.0とすることで実数演算を行なうわけです。 ・実数値のフォーマット指定は%dではない。 上記のように実数演算を行なうと、結果の型はdoubleとなります。 double値を出力するためのフォーマット指定は、"%e", "%f", %g"などです。 #個人的には%gがお勧め。 尚、結果を切り捨ててよいなら、printf("%d", (na + nb) / 2);でも構わないわけです。
お礼
本当にありがとうございました。さすが専門家はすごいですね。憧れます。
- fukusuke00
- ベストアンサー率28% (28/100)
float型、つまり浮動小数点表示するときに使います。 ここが%dだと小数点以下が切り捨てられてしまいます。
お礼
本当にありがとうございました!!
お礼
迅速にありがとうございました。