练习3.20:
读入一组整数并把它们存入一个vector对象,将每对相邻整数的和输出出来。
改写你的程序,这次要求先输出第1个和最后1个元素的和,接着输出第2个和倒数第2个元素的和,以此类推。
//3.20-1
#include<iostream>
#include<vector>
using std::cin;
using std::cout;
using std::endl;
using std::vector;
int main() {
int integers;
vector<int> ivec;
while (cin >> integers) {
ivec.push_back(integers);
}
//读取下标前必须判空
if (!ivec.empty() && ivec.size() != 1) {
for (int i = 0; i < ivec.size() - 1; ++i) {
cout << ivec[i] + ivec[i + 1] << " ";
}
}
return 0;
}
改写:
//3.20-2
#include<iostream>
#include<vector>
using std::cin;
using std::cout;
using std::endl;
using std::vector;
int main() {
int integers;
vector<int> ivec;
while (cin >> integers) {
ivec.push_back(integers);
}
//当有奇数个数时,中间的数不会被运算。
if (!ivec.empty()) {
for (int i = 0, j = ivec.size() - 1;
i < j; //如果需要输出中间的数,将<改为<=即可
++i, --j) {
cout << ivec[i] + ivec[j] << " ";
}
}
return 0;
本文代码运行环境为Microsoft Visual Studio Community 2019 16.6.5版本。
感谢阅读,欢迎指正。