• ベストアンサー

プログラミングについて質問です

プログラミングについて質問です 下のコードでaveに1.5を代入するにはどのようにコードを修正すればいいですか? main() { int a = 1, b = 2; double ave; ave = (a+b) / 2; }

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

  • ベストアンサー
  • ok-kaneto
  • ベストアンサー率39% (1798/4531)
回答No.2

aもbもintだから、 >(a+b) これも結果はint。 >(a+b) / 2 int同士の演算だから、結果もintになる。 割る方か割られる方の数を実数型(double)にすればOK。 (a+b)をdoubleにキャストするも良し、割る数を実数にしても良し。

abbbbbbbb
質問者

補足

すみません初心者なもので 何行目をどう直すのかをお手数ですが詳しく教えてもらえるとありがたいです

その他の回答 (3)

  • iori16
  • ベストアンサー率33% (1/3)
回答No.4

ANo.2の方が言っている「(a+b)をdoubleにキャストする」は main() { int a = 1, b = 2; double ave; ave = (double)(a+b) / 2; } にしろということで、「割る数を実数」にするということは main() { int a = 1, b = 2; double ave; ave = (a+b) / 2.0; } だということです。C言語の教科書はないんですか?あれば載ってるはずですが。

  • alara
  • ベストアンサー率66% (2/3)
回答No.3

//aとbをdoubleで宣言するケース main(){ double a=1, b=2; double ave; ave=(a+b)/2; } //宣言文を変えずに割る数を2.0にするケース main(){ int a=1, b=2; double ave; ave=(a+b)/2.0; } //宣言文を変えずに割られる数をdoubleにするケース main(){ int a=1, b=2; double ave; ave=(double)(a+b)/2; } すみません、試してないけど。これで多分いけるんじゃないかな……。

  • DIooggooID
  • ベストアンサー率27% (1730/6405)
回答No.1

ave = (a+b) / 2; というコードがありますが、 これを全く無視して、 ave に 1.5 を代入してしまう、 ということですか?

abbbbbbbb
質問者

補足

すみません説明不足でした ave = (a+b) / 2;は無視しないでaveに1.5を代入するということです

関連するQ&A