所以,我需要从我的数组中得到前5个偶数的总和,这是我到目前为止的代码,不知道接下来要做什么。它运行,但结果不正确
System.Drawing.Graphics
答案 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_if
和std::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);