gpt4 book ai didi

c++ - 在不使用迭代器的情况下添加位于 vector 中的整数总和,总和是第一个和第二个元素的总和,依此类推

转载 作者:行者123 更新时间:2023-11-28 04:28:29 26 4
gpt4 key购买 nike

#include <iostream>
#include <vector>

using namespace std;

int main()
{
int typedNos;
if (cin >> typedNos)
{
vector <int> inputNos{ typedNos };

while (cin >> typedNos)
{
inputNos.push_back(typedNos);
}


for (decltype (inputNos.size()) n = 1; n < inputNos.size(); ++n)
{

cout << inputNos[0] + inputNos[1] << '\t' << inputNos[(2 * n) - 1]
+ inputNos[(2 * n)] << endl;

return 0;
}
}
else
{
cerr << " Wrong input type or no input was typed!" << endl;
//return -1;
}
}

在到达 for 循环中的输出语句之前,一切正常。 vector 的前两对元素是手动添加的,以占零。其余的将自动添加。但这仅适用于第一对。

So, for example, an input of:

1 2 3 4 5.

Will give you an output of:

3 5.

Instead of 3 5 7 9.

这是我遇到的问题。我见过其他解决此问题的方法,但我的问题是为什么序列 2n(偶数位置)和 2n-1(奇数位置)不适用于整个 vector ?记住这个问题不允许我使用迭代器。谢谢。

最佳答案

问题在于您的for-loop。在循环内使用 return 仍会退出当前函数。您当前的函数是 main,因此程序结束。

我不太确定您为什么认为需要 2 * n。似乎您想遍历每个对象,而不是每一秒。

for (std::size_t n = 1; n < inputNos.size(); ++n) {
std::cout << inputNos[n] + inputNos[n-1] << '\t';
}
std::cout << std::endl;

关于c++ - 在不使用迭代器的情况下添加位于 vector 中的整数总和,总和是第一个和第二个元素的总和,依此类推,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53670012/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com