请教大家个问题
读一组整数到vector对象,计算并输出每对相邻元素的和。如果读入元素个数
为奇数,则提示用户最后一个元素没有求和,并输出其值。然后修改程序:头
尾元素两两配对(第一个和最后一个,第二个和倒数第二个,以此类推),计
算每对元素的和,并输出。
我写的编译都可以过,就是结果有问题,有高手能帮忙看看吗,谢谢!!#include<iostream>
#include<vector>
using namespace std;
int main()
{
vector<int> v1;
int value,len1,sum;
len1=v1.size();//len1接收容器长度
cout<<"请输入一组整数:"<<endl;
while(cin>>value)//依次将整数输入容器
v1.push_back(value);
if(len1==0)//无输入,中断
{
cout<<"无整数输入?"<<endl;
return -1;
}
for(vector<int>::size_type ix=0;ix<len1-1;ix+=2)
{
sum=v1[ix]+v1[ix+1];
cout<<"容器中各配对元素的和为:"<<sum<<endl;
}
if(len1%2==0)//容器元素个数为奇数,输出最后一个元素
cout<<"最后一个元素没有求值,它是"<<v1[len1-1]<<endl;
return 0;}
读一组整数到vector对象,计算并输出每对相邻元素的和。如果读入元素个数
为奇数,则提示用户最后一个元素没有求和,并输出其值。然后修改程序:头
尾元素两两配对(第一个和最后一个,第二个和倒数第二个,以此类推),计
算每对元素的和,并输出。
我写的编译都可以过,就是结果有问题,有高手能帮忙看看吗,谢谢!!#include<iostream>
#include<vector>
using namespace std;
int main()
{
vector<int> v1;
int value,len1,sum;
len1=v1.size();//len1接收容器长度
cout<<"请输入一组整数:"<<endl;
while(cin>>value)//依次将整数输入容器
v1.push_back(value);
if(len1==0)//无输入,中断
{
cout<<"无整数输入?"<<endl;
return -1;
}
for(vector<int>::size_type ix=0;ix<len1-1;ix+=2)
{
sum=v1[ix]+v1[ix+1];
cout<<"容器中各配对元素的和为:"<<sum<<endl;
}
if(len1%2==0)//容器元素个数为奇数,输出最后一个元素
cout<<"最后一个元素没有求值,它是"<<v1[len1-1]<<endl;
return 0;}
#include <iostream>
#include <vector>
using namespace std;
int main()
{ vector <int> v1;
int value,len1,sum;
len1=v1.size();//len1接收容器长度
cout <<"请输入一组整数:" <<endl;
while(cin>>value)//依次将整数输入容器
v1.push_back(value);
len1 = v1.size(); //少了这句,后面len1一直是0,没法判断了
if(len1==0)//无输入,中断
{
cout <<"无整数输入?" <<endl;
return -1;
} for(vector <int>::size_type ix=0;ix < len1-1; ix+=2)
{
sum = v1[ix]+v1[ix+1];
cout <<"容器中各配对元素的和为:" <<sum <<endl;
} if(len1%2==0)//容器元素个数为奇数,输出最后一个元素
cout <<"最后一个元素没有求值,它是" <<v1[len1-1] <<endl;
return 0; }
while(cin>>value)//依次将整数输入容器
v1.push_back(value); 的后面
因为你已经改变了该vector的size;
所以要在改变后在调用v1.size();