数组中前5个偶数的总和

时间:2016-06-14 17:06:22

标签: c++ arrays sum

所以,我需要从我的数组中得到前5个偶数的总和,这是我到目前为止的代码,不知道接下来要做什么。它运行,但结果不正确

System.Drawing.Graphics

2 个答案:

答案 0 :(得分:0)

这一行:

niz[i] == parni[j];

什么都不做。 (它测试niz[i]是否恰好等于parni[j]的当前未初始化值,并丢弃比较结果。)

您希望将niz[i]存储在parni[j]中,请执行以下操作:

parni[j] = niz[i];

顺便提一下,如果niz数组中的偶数少于5,则会出现问题。在这种情况下,您仍然使用未初始化的值(即Bad)总结parni数组的所有五个条目。避免这种情况的一种方法是在找到它们时总结偶数条目,而不使用辅助数组。 IE,在相关行上suma += niz[i],并完全摆脱parni

答案 1 :(得分:0)

除非你真的需要在这里使用数组,否则vector的效果会更好。

您还可以使用几种标准算法让您的生活更轻松(尤其是std::copy_ifstd::accumulate)。

// for the moment I'll ignore the code to read the input from the user:
auto input = read_input();

auto pos = std::remove_if(input.begin(), input.end(), 
                          [](int i) { return i % 2 != 0; });

// assume that `input` always contains at least 5 elements
pos = std::min(pos, input.begin() + 5);

sum = std::accumulate(input.begin(), pos, 0);