该程序旨在将所有数字从1加到我输入的数字。如果我只输入一个数字,答案是正确的,但如果我没有停止并重新打开我的程序,我输入的第二个数字的答案也将添加第一个数字的结果。我错过了什么?请帮忙。
#include<iostream>
using namespace std;
int main()
{
int inNum;
int loopCount = 1;
int count;
int sum = 0;
cout << "Enter a number greater than 0 (less than 1 to quit): " << endl;
cin >> inNum;
while ( inNum >= loopCount) {
for (count=0 ; count <= inNum ; count++ ){
sum = sum + count * count;
}
cout << "The sum of the squares from 1 to " << inNum << " is " << sum << endl;
cout << "Enter a number greater than 0 (less than 1 to quit): " << endl;
cin >> inNum;
}
}
答案 0 :(得分:0)
一种解决方案是将sum
的声明移到您的while块中,
// int sum = 0;
while ( inNum >= loopCount) {
int sum = 0; // <-- or just sum = 0; and keep the declaration outside the loop
另一个(如评论中所述)是在循环体的末尾重置sum
。