C++容器问题
今晚编了一个小程序,感觉没有什么问题,可是运行后却不出结果。题目如下:读一组整数到VECTOR对象,计算并输出每对相邻的元素的和,如果读入的个数为奇数个,则提示用户最后有一个元素没有求和,并输出其值。
我的程序如下:
#include<iostream>
#include<vector>
using namespace std;
int main()
{
vector<int> ivec;
int count,sum,Input;//count为记录输入个数,Input为要输入的数
sum=0;
count=0;
cout<<"now input the integers:"<<endl;
while(cin>>Input)
{
ivec.push_back(Input);
++count;
}
for(vector<int>::size_type ix=0;ix!=ivec.size();(ix+2))
{
sum=ivec+ivec; //相邻的两个数相加并输出
cout<<sum<<endl;
sum=0;
}
if(count%2) //确定输入个数是否为奇数个
cout<<"the last element doesn't added!"<<endl;
return 0;
} for(vector<int>::size_type ix=0;ix!=ivec.size(); (ix+2) )
应该是这里错了 这里没有问肉吧?现在问题是输入整数后回车应该又结果出来才对,但是我回车后程序只是换行,并没有输出结果。 首先, while(cin>>Input) 这种写法,应该输入回车没有结束,而是要 Ctrl+D.
其次,
for(vector<int>::size_type ix=0;ix!=ivec.size(); (ix+2) )
{
sum=ivec+ivec[ix+1]; //相邻的两个数相加并输出
cout<<sum<<endl;
sum=0;
}
楼主的ix+2应该是想要ix+=2的意思吧?
不过改成 ix+=2,当输入是奇数时,这样也会出错,因为后面的sum=ivec+ivec[ix+1]; 。
只改 ix+2 为 ix+=2 后,我输入两个数测试时,是正确的:
now input the integers:
23
12
30
10
^D //这个就是输入Ctrl+D
35
40
页:
[1]