计算vector中相邻的两个元素的和
一个c++ primer中的问题。计算vector中相邻的两个元素的和,输入的数字若是奇数则提示用户最后一个元素没有求和并输出,下面是我实现的代码,vc6.0下编译通过。可是运行的时候输入奇数个数字的时候没有问题可是输入偶数个数字的时候就有问题了。希望各位能帮忙看一下。到底是哪除了问题了
//计算vector中相邻的两个元素的和,输入的数字若是奇数则提示用户最后一个元素没有求和并输出
#include<iostream>
#include<vector>
using namespace std;
int main()
{
int num;//输入的数字
vector<int> ivec;//定义一个vector
//输入num存到ivec vector
while(cin>>num)
{
//动态增加vector的大小
ivec.push_back(num);
}
//判断输入的数字个数是否是奇数,若是奇数,则按此执行
if(ivec.size()%2!=0)
{
//求两个元素的合,定义in为vector元素的个数
for(vector<int>::size_type in=0;in!=ivec.size()-1;in+=2)
{
int sum=0;
sum=ivec[in]+ivec[in+1];
cout<<ivec[in]<<"+"<<ivec[in+1]<<"="<<sum<<endl;
}
//由于输入数字的个数是奇数个,所以需要输出最后一个元素
cout<<"The last num hasn't plus"
<<endl
<<"The num is--->"
<<ivec[ivec.size()-1]
<<endl;
}
//当输入数字的个数是偶数的时候
else
{
for(vector<int>::size_type in=0;in!=ivec.size()-1;in+=2)
{
int sum=0;
sum=ivec[in]+ivec[in+1];
cout<<ivec[in]<<"+"<<ivec[in+1]<<"="<<sum<<endl;
}
}
return 0;
}