• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:c言語超初心者です。教えてください)

C言語超初心者のための平均計算プログラム

このQ&Aのポイント
  • C言語超初心者のための平均計算プログラムの作り方を教えてください。
  • int型の最後のprintf文で%fを使用しているのはなぜですか?
  • 答えが実数値でなければならないため、%fを使用しています。

質問者が選んだベストアンサー

  • ベストアンサー
  • edomin
  • ベストアンサー率32% (327/1003)
回答No.1

%d にするとna+nb が奇数の時どうなりますか? 少数がつきますよね。(0.5) なので、表示するときは、実数形式にしています。(割る数を実数にしている)

dasuthin
質問者

お礼

迅速にありがとうございました。

その他の回答 (4)

  • ballville
  • ベストアンサー率47% (233/487)
回答No.5

Cでは式の中で暗黙の型変換が行われます。 いまの例では、 (na+nb)/2.0 の部分。 naもnbもint型ですが、それを2.0で割ることで、 自動的にdouble型にしています。 下のページが参考になると思います。

参考URL:
http://www9.plala.or.jp/sgwr-t/c/sec04.html
dasuthin
質問者

お礼

すごいいいサイトを紹介してくれてありがとうございました。

  • Oh-Orange
  • ベストアンサー率63% (854/1345)
回答No.4

★正しいですよ。質問者さん。 ・実数値は、%f です。 ・ちはみに、『2.0』を表記しないと実数で計算されませんでの『2』ではダメです。 ・実数値の表現は必ず小数点で指定します。定数の場合はね。 ・もう、たくさんの人々のアドバイスがありますので問題は解決ですな。 補足: ・c言語の超初心者ですが『printf』の書式文字列の確認を取りたかったようですね。 ・これから、自分自身に自信を持っても良いですよ。 ・c言語は順調に理解していると思います。 ・最後に頑張って下さい。さようなら。質問者さん。

dasuthin
質問者

お礼

本当にありがとうございました。やっぱり専門家さんは、朝でもがんばってるんですね。

回答No.3

問題を二つに分けて考えるべきでしょう。 ・平均値は整数では表せない。 (na + nb) / 2としたら、小数点以下で切り捨てられます。 従って、(na + nb) / 2.0とすることで実数演算を行なうわけです。 ・実数値のフォーマット指定は%dではない。 上記のように実数演算を行なうと、結果の型はdoubleとなります。 double値を出力するためのフォーマット指定は、"%e", "%f", %g"などです。 #個人的には%gがお勧め。 尚、結果を切り捨ててよいなら、printf("%d", (na + nb) / 2);でも構わないわけです。

dasuthin
質問者

お礼

本当にありがとうございました。さすが専門家はすごいですね。憧れます。

回答No.2

float型、つまり浮動小数点表示するときに使います。 ここが%dだと小数点以下が切り捨てられてしまいます。

参考URL:
http://www.page.sannet.ne.jp/mtoga/lang/c/bih-c_30.htm
dasuthin
質問者

お礼

本当にありがとうございました!!

関連するQ&A