前五个自然数的总和

时间:2014-01-09 23:35:11

标签: c++

我想获得前五个自然数的总和,但是这里的代码有些不对劲,需要找到错误吗?帮助

#include <iostream>
#include <cstdlib>

using namespace std;

int main()
{
    int i = 1, thesum;

    while(i <= 5)
    {
        thesum += i;
        i++;
    }

    cout << thesum;

    return 0;
}

2 个答案:

答案 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;
}