这是我到目前为止所拥有的。它似乎只添加第一个+最后一个,第二个+最后一个等等。我无法弄清楚如何使它添加第二个+倒数第二个等等。 它是一个动态向量,不能使用迭代器。
#include iostream
#include vector
using namespace std;
int main()
{
vector<int> ack;
int add;
while(cin >> add)
{
ack.push_back(add);
}
for(size_t i = 0; i < ack.size(); i++)
{
cout << ack[i] + ack[ack.back() - 1] << endl;
}
}
答案 0 :(得分:2)
你的代码是错误的。 ack.back()
只是最后一个元素的值 - 与您尝试执行的任何操作无关。此外,ack.back() - 1
不是循环索引的函数 - 因此ack[ack.back() - 1]
只是每次循环时都会添加的常量。
由于每次都需要“last-Nth”元素,这意味着您需要从size()
中减去某些内容。所以你想要做的是:
for(size_t i = 0; i < ack.size(); i++)
{
cout << ack[i] + ack[ack.size() - i - 1] << endl;
}