• ベストアンサー

配列

配列を使って合計を計算したいんですが total[0]+=tensu[0]; total[1]+=tensu[1]; 上のように延々と一つずつ書いていくんではなく for(int i=0;i<2;i++); total[i]+=tensu[i]; 上のように一文で計算式を書いてしまいたいんですが 実行しても上手くいきません この式やっぱりおかしいんでしょうか?

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

  • ベストアンサー
  • isi0611
  • ベストアンサー率34% (46/134)
回答No.4

こんばんは!#3です! total[0]+=tensu[0]; total[1]+=tensu[1]; と total[i]+=tensu[i]; はこのfor文ですと同じ意味ですよ!(^o^)丿 for(int i=0;i<2;i++){  total[i]+=tensu[i]; } とするとiが0から始まり1で終了します。 (i<2は2より小さいという意味なので!) 配列は0から始まりますから0,1と2回繰り返されます。 ですのでfor文も実際には total[0]+=tensu[0]; total[1]+=tensu[1]; ということになります(^^♪

cool12
質問者

お礼

何回もありがとうございました^^ 分かりやすくて参考になりました

その他の回答 (3)

  • isi0611
  • ベストアンサー率34% (46/134)
回答No.3

こんばんは! まず for(int i=0;i<2;i++); total[i]+=tensu[i]; だとコンパイルエラーになってしまうと思いますよ。 正しくは for(int i=0;i<2;i++){  total[i]+=tensu[i]; } こんな感じになると思います。 さらにこの+=は加算していくということですから 最初にtotal[0]に100が入っていたとしてtensu[0]に 100が入っていたとしたら200となりまね! また何かおかしなことがあったら質問くださいな (^o^)丿

cool12
質問者

お礼

回答ありがとうございます

cool12
質問者

補足

回答ありがとうございました 更に質問で申し訳ないのですが total[0]+=tensu[0]; total[1]+=tensu[1]; と total[i]+=tensu[i]; って同じ式を表す事になるんでしょうか?(・・;

回答No.2

>実行しても上手くいきません この質問にはいくつかの疑問があります。 ソースがあっているのか、本当に実行できるのか、コンパイルが通っているのか。 仮にコンパイルが通っているのであれば、「i」が別にグローバル変数として宣言されているのかと。 素直に考えると質問の記述ミスか、そもそもコンパイルできておらず、実行できていない状態なのかと思います。 >この式やっぱりおかしいんでしょうか? おかしいです。質問者のコードの意図を汲み取り最小限の修正を行うのであれば for(int i=0;i<2;i++); total[i]+=tensu[i]; ではなく for(int i=0;i<2;i++) total[i]+=tensu[i]; と「;」を1つ削除すると、とりあえず動くかと思います。

  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.1

> for(int i=0;i<2;i++); for文が;で終わってしまってますので、ループしないからでは。 for(int i=0;i<2;i++) { total[i]+=tensu[i]; } ――と処理のブロックを明示的に書いた方が良いです。とくに学び始めの時は。 > total[i]+=tensu[i]; ここも意味的にうさんくさそうですが。

cool12
質問者

お礼

すいません(--; 本当にわからなくて 自分で創作してしまっているような状況なんですが total[i];=tensu[i] これは一応本見ながらやったのですが tensuの部分は20人分くらい入力するので これが[i]でいいのだろうかと思うのですが 更にもう一つ疑問なんですが total[0]+=tensu[0]; total[1]+=tensu[1]; と total[i]+=tensu[i]; って同じ式を表す事になるんでしょうか

関連するQ&A

専門家に質問してみよう