计算vector中相邻的两个元素的和

nmglzlong 2008-03-19 06:21:36
一个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;
}
...全文
232 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
nmglzlong 2008-03-19
  • 打赏
  • 举报
回复
谢谢了啊。。。
jieao111 2008-03-19
  • 打赏
  • 举报
回复
慢了一步,,,可惜了。。
jieao111 2008-03-19
  • 打赏
  • 举报
回复
//计算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();in+=2)
{
int sum=0;
sum=ivec[in]+ivec[in+1];
cout < <ivec[in] < <"+" < <ivec[in+1] < <"=" < <sum < <endl;
}
}

return 0;
}
wpalhm 2008-03-19
  • 打赏
  • 举报
回复
将最后一个for里面的in!=ivec.size()-1改成in!=ivec.size();
ok了

65,187

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧