• ベストアンサー

C++の配列について

#include <iostream> using namespace std; int main() { float w[] = {1.2,2.3,3.4,4.5,5.6}; float x[] = {4.8,2.6,1.3,9.1,8.7}; float u = 0.0; int i; for(i=0;i<5;i=i++) { u += w[i] * x[i]; } cout << "u=" << u << "です\n"; return 0; } u=105.83って出たんですが、これは何をしているプログラムなんですか

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

  • ベストアンサー
  • Lchan0211
  • ベストアンサー率64% (239/371)
回答No.1

> これは何をしているプログラムなんですか u += w[i] * x[i]; と書かれている通り、2つの配列の各要素の積を合計したものを 出力するプログラムでしょう。 質問内容とは関係ないですが、 for文の第3パラメータ「i=i++」は、コンパイルエラーにも 動作エラーにもなりませんが、変なコーディングです。 「頭痛が痛い」と言っているような感じですね。

noname#127615
質問者

補足

i=i+1でしたすみません。 それでも一緒ですか? あと、各要素の積の合計っていうのは1.2*4.8+2.3*2.6+…=みたいな感じですか?

その他の回答 (2)

  • titokani
  • ベストアンサー率19% (341/1726)
回答No.3

i=i++は副作用完了点までにiの値を2回変更しているので、未定義動作ですよ。書いてはいけないコードです。

  • ponzuinfo
  • ベストアンサー率53% (16/30)
回答No.2

float w[] = {1.2,2.3,3.4,4.5,5.6}; float x[] = {4.8,2.6,1.3,9.1,8.7}; (1.2*4.8)+(2.3*2.6)+・・・+(5.6*8.7) をuに代入して表示するプログラムです ※i=i++はi=i+1でもおかしくはないですが forで1ずつ足すというのはi++にするのがポピュラーです for(i=0;i<5;i++)

関連するQ&A