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