アプリ版:「スタンプのみでお礼する」機能のリリースについて

#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って出たんですが、これは何をしているプログラムなんですか

A 回答 (3件)

> これは何をしているプログラムなんですか


u += w[i] * x[i];
と書かれている通り、2つの配列の各要素の積を合計したものを
出力するプログラムでしょう。

質問内容とは関係ないですが、
for文の第3パラメータ「i=i++」は、コンパイルエラーにも
動作エラーにもなりませんが、変なコーディングです。
「頭痛が痛い」と言っているような感じですね。

この回答への補足

i=i+1でしたすみません。

それでも一緒ですか?

あと、各要素の積の合計っていうのは1.2*4.8+2.3*2.6+…=みたいな感じですか?

補足日時:2009/11/15 21:49
    • good
    • 0

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

書いてはいけないコードです。
    • good
    • 0

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++)
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!