文章

C++Primer 3.20习题

1

#include<iostream>
#include<vector>
#include<string>
using namespace std;
int main()
{
    int i;
    vector<int> v;

    //cin用户的输入到i,push_back给v
    while (cin >> i) {
        v.push_back(i);
    }

    //范围for注意v.size需要-1,因为有差一属性,否则缓冲区会溢出
    //然后用临近的两个值相加cout
    for (i = 0;i < v.size()-1;++i)
        cout << v[i] + v[i + 1] << endl;

    return 0;
}

2

#include<iostream>
#include<vector>
#include<string>
using namespace std;
int main()
{
    int i;
    vector<int> v;

    //cin用户的输入到i,push_back给v
    while (cin >> i) {
        v.push_back(i);
    }

    //范围for注意v.size需要-1,因为有差一属性,否则缓冲区会溢出
    //然后相隔最远的两数相加输出,注意条件i1<i2这里,否则溢出
    decltype(v.size()) i1 = 0;
    auto i2 = v.size() - 1;
    for (;i1<i2;++i1,--i2)
        cout << v[i1] + v[i2] << endl;

    return 0;
}
原文来自:C++Primer 3.20习题,尊重自己,尊重每一个人;转发请注明来源!
0 0

发表评论