• ベストアンサー

C++ 

このプログラムの最後に入力した数の合計を表示するには、どのようなプログラムを書き込めばいいでしょうか。 #include<iostream.h> void main(void) { int i=1,sum=0,num; while(num>=0) { cout<<"\n数値を入力してください(終了するときは負の数を入力):"; cin>>num; ++i; sum+=i; cout<<"1から"<<i<<"までたすと"<<sum<<"です"; } }

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

  • ベストアンサー
  • diov
  • ベストアンサー率75% (3/4)
回答No.1

>最後に入力した数の合計 と言うのが解らなかったので入力した数の合計と勝手に解釈。 そのコードに"書き込む"なら //--- #include<iostream.h> void main(void) { int i=1,sum=0,num=0; while(num>=0) { cout<<"\n数値を入力してください(終了するときは負の数を入力):"; cin>>num; sum += num; } sum -= num; cout<<"合計は"<<sum<<"です"; } } //--- こんな感じ。 因みに"書き直す"なら //--- #include <iostream> int main() { int nSumTotal = 0, nNum = 0; for (; nNum >= 0; nSumTotal += nNum) { std::cout << "数値を入力してください(終了するときは負の数を入力):" << std::endl; std::cin >> nNum; } nSumTotal -= nNum; std::cout << "合計は" << nSumTotal << "です" << std::endl; } //--- エラーとか考慮してません。

その他の回答 (1)

  • 12m24
  • ベストアンサー率23% (193/817)
回答No.2

 おそらくプログラムの始めだけ間違っています。  numになにも値が代入されてい状態でwhileにはいるので、while文の所でエラーが起きることが考えられます。そのため、質問のプログラムの9,10行目の cout<<"\n数値を入力してください(終了するときは負の数を入力):"; cin>>num; をwhileの前に持っていってください。

関連するQ&A

  • 数の大きさ

    C++初心者です。以下の様なプログラムで、合計を求めたいのですが、あまり桁数の大きい数だと、正確な値がでません。(20桁とか・・・)これは一体どういうことが考えられますか?//配列の全要素の合計を求める #include<iostream.h> int main(void) { int i; int a[5]={0}.; cout<<"5個の整数値を入力しましょう。 \n"; for(i=0; i<5; i++) { cout<<"No."<<i+1<<": "; cin>>a[i]; } int sum=0; for(i=0; i<5; i++) sum=sum+a[i]; cout<<"合計は"<<sum<<"です。\n"; return(0); }

  • C++

    C++で書いた下記のプログラムが、文字の入力が1023個までなら実行されますが、1024個を超えると実行されません。なぜだか分かる方、教えてください。 #include <iostream> #include <string> using namespace std; int main(void) { string Str; cin >> Str; cout << "here"; }

  • c++ 整数値の各桁を足し合わせるプログラム

    上記の通りの質問です #include <iostream> using namespace std; int main () { int x; int sum = 0; cout << "正の整数値の各桁を足す。\n " ; do{ cout << "正の整数値:"; cin >> x; }while (x <= 0); cout << "足すと"; while (x > 0){ cout << sum += x % 10; x /= 10; return sum; } cout << "です。\n " ; } とまでは書けましたがうまくいきません。 初心者なので簡単かもしれませんがお願いします。

  • 合計値を求める関数

    #include<iostream> using namespace std; //sum関数の定義 int sum(int x, int y) { return x + y;  } int main() { int num1, num2, ans; cout << "1番目の整数を入力して下さい。\n"; cin >> num1; cout << "2番目の整数値を入力して下さい。\n"; cin >> num2; ans = sum(num1, num2); cout << "合計は" << ans << "です。\n"; return 0; }  ここのreturn x+y;の所の合計値を戻り値として返す処理の仕組みを解りやすく教えて欲しいです、戻り値はちょっと解りづらいです、よろしくお願いします。

  • c++ 各桁の整数値を足すプログラム

    上記の通りの質問です #include <iostream> using namespace std; int main () { int x; int sum = 0; cout << "正の整数値の各桁を足す。\n " ; do{ cout << "正の整数値:"; cin >> x; }while (x <= 0); cout << "足すと"; while (x > 0){ cout << sum += x % 10; x /= 10; } return sum; cout << "です。\n " ; } とまでは書けましたがうまくいきません。 初心者なので簡単かもしれませんがお願いします。 また、sum += x% 10 と書いたときにオペラントと一致する演算子がないとでます。

  • C++での平均値

    クラスのテストの点数(0点から100点)の平均をだすプログラムをwhile文を使って造っています。最後の割り算の部分を演算子/を使わずに計算したいのですが、どうすればよいですか。 #include <iostream.h> void main(void) { int goukei = 0; int i=1; do { goukei += i; i++; }while( i<=100 ); int kotae; kotae=goukei/100; cout << kotae; }

  • 実行

    こんにちは。私は昨日からC++を始めたのですがなかなかうまくいかないためこちらに質問させていただくことにしました。 #include <iostream.h> int main(void) { int x; int y; cout<<"xを入力: 10"; cin>>x; cout<<"yを入力: 2"; cin>>y; cout<<"x+yは"<<x+y<<"です。\n"; return(0); } このようなプログラムを作成したのですが実行してみたところ、 xを入力: 10 これ以降下までいきません。どうすればうまくいくのでしょうか?宜しくお願いします。

  • while文の作成について

    キーボードに整数を打ち込み、0を打ち込むと終了し、その合計を出すプログラムを以下のように作りました。 #include<stadio.h> int main(void){ int num=0 int sum=0 printf("整数を入力"\n"); do{ scanf("%d",&num); sum +=num; }while(num); printf("合計は%dです。\n",sum); returen 0; } 次に負の値が入力されるまで整数を読み込み続け、その合計をを求めるプログラムを作りたいのですが、whileのところを }while(num>=0); としてみたのですが、うまくいきません。また分かり易くするため、入力した整数の個数も表示できるようにしたいです。どうすればよいでしょうか。詳しい方、教えてください。

  • C++で二分法のプログラム

    C++で二分法のプログラムを作るんですが x1-x2が十分小さくなれば(10^-5)終了する 例 cos(x/2)の解を出す これどうやればいいんですか?whileを使うらしいですが。 文法というのは、 if系、while、switch、continue、for、break文くらいしかやってないんですが #include <iostream> #include <cmath> using namespace std; int main() { までは行きますが… 出力はcout 入力はcinでお願いできないでしょうか

  • c言語で平均をだす

    #include<stdio.h> int main(void) { int num; int sum; printf("テストの点数を入力してください。\n"); do{ scanf("%d",&num); sum+=num; }while(num); printf("テストの合計点は%dです\n",sum); return 0; } テストの平均点をだすプログラムを作りたいのですが、合計を出すまではわかったのですが、ここから、平均を出すようにするにはどうすればよいですか。

専門家に質問してみよう