• ベストアンサー
  • すぐに回答を!

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

  • 質問No.5622144
  • 閲覧数27
  • ありがとう数1
  • 回答数4

お礼率 5% (1/17)

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

下のコードでaveに1.5を代入するにはどのようにコードを修正すればいいですか?

main() {
int a = 1, b = 2;
double ave;

ave = (a+b) / 2;

}

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

  • 回答No.2
  • ベストアンサー

ベストアンサー率 39% (1797/4530)

aもbもintだから、
>(a+b)
これも結果はint。
>(a+b) / 2
int同士の演算だから、結果もintになる。

割る方か割られる方の数を実数型(double)にすればOK。
(a+b)をdoubleにキャストするも良し、割る数を実数にしても良し。
補足コメント
abbbbbbbb

お礼率 5% (1/17)

すみません初心者なもので
何行目をどう直すのかをお手数ですが詳しく教えてもらえるとありがたいです
投稿日時:2010/01/25 17:19

その他の回答 (全3件)

  • 回答No.4

ベストアンサー率 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言語の教科書はないんですか?あれば載ってるはずですが。
  • 回答No.3

ベストアンサー率 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;
}

すみません、試してないけど。これで多分いけるんじゃないかな……。
  • 回答No.1

ベストアンサー率 27% (1730/6405)

ave = (a+b) / 2;

というコードがありますが、 これを全く無視して、

ave に 1.5 を代入してしまう、 ということですか?
補足コメント
abbbbbbbb

お礼率 5% (1/17)

すみません説明不足でした
ave = (a+b) / 2;は無視しないでaveに1.5を代入するということです
投稿日時:2010/01/25 16:52
関連するQ&A

その他の関連するQ&Aをキーワードで探す

ピックアップ

ページ先頭へ