我想写一个简单的程序,我要求用户输入一组数字来求和。用户可以输入未知数量的数字。
这是我的代码:
#include <iostream>
using namespace std;
//ask the user to input a set of numbers to sum (unknown number of input)
int main (){
int sum = 0, value = 0;
while (cin >> value){
sum += value;
cout << "sum is " << sum << endl;
return 0;
}
}
但是,当我输入多个数字时,结果总是等于第一个数字,而不是输入的所有数字的总和。如:
5 6 7 8
总和是5
我做错了什么?
答案 0 :(得分:3)
问题是return 0
。把它放在while块之外。
答案 1 :(得分:1)
你做错了。您必须将print方法放在循环之外并返回。如果您希望用户在他想要的任何时间终止,那么您需要输入特定关键字或除数据类型之外的任何其他关键字(如char在整数的位置),以便它将终止循环。
#include <iostream>
using namespace std;
int main (){
int sum = 0, value = 0;
/*press any key other than number to terminnate*/
while (cin >> value){
sum += value;
}
cout << "sum is " << sum << endl;
return 0;
}