我想获得前五个自然数的总和,但是这里的代码有些不对劲,需要找到错误吗?帮助
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
int i = 1, thesum;
while(i <= 5)
{
thesum += i;
i++;
}
cout << thesum;
return 0;
}
答案 0 :(得分:4)
您尚未初始化thesum
变量。将其初始化为0
。
int i = 1, thesum = 0;
否则会调用未定义的行为。
答案 1 :(得分:2)
正如已经指出的那样,你没有初始化局部变量thesum。所以它有一些任意的价值。
此外,不需要包含标头<cstdlib>
,因为没有使用它的任何声明。
由于变量i不在循环外使用,最好使其成为循环的局部变量。
所以我会按照以下方式重写程序
#include <iostream>
using namespace std;
int main()
{
const int N = 5;
int theSum = 0;
for ( int i = 0; i < N; i++ ) theSum += i + 1;
cout << "The sum of first " << N << " natural numbers is " << theSum << endl;
return 0;
}