得到奇怪的结果作为数组的最后一个元素

时间:2013-11-25 17:55:55

标签: c++ arrays

#include <iostream>

using namespace std;

int main()
{
    double a[5], b[5], sum[5];
    for(int i = 0; i < 5; i++){
        cin >> a[i] >> b[i];
        sum[i] += a[i] + b[i];
    }
    for(int i = 0; i < 5; i++)
        cout << sum[i] << " ";
    return 0;
}

我正在尝试将[i] + b [i]的总和加到sum [i]中,然后输出它。但由于某种原因,它似乎没有按预期工作,它为最后一个元素的任何数字输出一些奇怪的值,这是一个例子:

5.2 1.2
5.3 2.1
2.7 5.3
2.7 5.3
2.6 1.9
6.4 7.4 8 8 7.5784e+268

如您所见,最后一个元素未正确计算。我尝试在C :: B中使用Debugger,它说一切都很好。

Program exited normally.
Debugger finished with status 0

1 个答案:

答案 0 :(得分:3)

问题是sum数组中的值并不是最初都初始化为0.所以你有一些垃圾值位于数组的一个索引中,这就是你的最后一个值不正确的原因。

主要做这件事:

sum[5] = {0.0};

此外,因为它有c ++标签,为什么不使用std::vector?这是因为vector会将内容初始化为默认值。

std::vector<double> sum(5); //This will contain {0.0, 0.0, 0.0, 0.0, 0.0}