- ベストアンサー
プログラミングについて質問です
プログラミングについて質問です 下のコードでaveに1.5を代入するにはどのようにコードを修正すればいいですか? main() { int a = 1, b = 2; double ave; ave = (a+b) / 2; }
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
aもbもintだから、 >(a+b) これも結果はint。 >(a+b) / 2 int同士の演算だから、結果もintになる。 割る方か割られる方の数を実数型(double)にすればOK。 (a+b)をdoubleにキャストするも良し、割る数を実数にしても良し。
その他の回答 (3)
- iori16
- ベストアンサー率33% (1/3)
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)
//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)
ave = (a+b) / 2; というコードがありますが、 これを全く無視して、 ave に 1.5 を代入してしまう、 ということですか?
補足
すみません説明不足でした ave = (a+b) / 2;は無視しないでaveに1.5を代入するということです
補足
すみません初心者なもので 何行目をどう直すのかをお手数ですが詳しく教えてもらえるとありがたいです