c ++中的简单数组求和

时间:2016-04-08 22:08:21

标签: c++ sum

我是C ++的初学者,我在c ++中对一个简单的和码有疑问。

这是我的代码:

#include <cmath>
#include <cstdio>
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;


int main()
{
    int n;
    int sum;
    int arr_i = 0;

    cin >> n;
    vector<int> arr(n);
    while (arr_i != n)
    {
        cin >> arr[arr_i];
        sum += arr[arr_i];
        //cout << sum << endl;
        if (arr_i == n - 1)
            cout << sum;
        arr_i++;
    }
    return 0;
}

输出没有&#34; cout&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;总和&#34;在if条件之前。

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:7)

您忘了将sum初始化为0。

int sum = 0;

答案 1 :(得分:1)

正如前面提到的那样,sum并未初始化为0.在良好实践和样式方面,最好初始化在循环体之前的循环内修改的任何变量,以便有人可以轻松地阅读代码掌握变量的背景。

int main()
{
    int n;
    int sum;
    int arr_i;

    cin >> n;
    vector<int> arr(n);

    sum = 0;
    arr_i = 0;
    while (arr_i != n)
    {
        cin >> arr[arr_i];
        sum += arr[arr_i];
        //cout << sum << endl;
        if (arr_i == n - 1)
            cout << sum;
        arr_i++;
    }
    return 0;
}

或者我更喜欢&#34;对于&#34;环...

int main()
{
    int n;
    int sum;
    int arr_i;

    cin >> n;
    vector<int> arr(n);

    for (sum = 0, arr_i = 0; arr_i != n; arr_i++)
    {
        cin >> arr[arr_i];
        sum += arr[arr_i];
        //cout << sum << endl;
        if (arr_i == n - 1)
            cout << sum;
    }
    return 0;
}