QQ:14280784 86974558 每晚20:00到22:00在网络课堂上课
读一组整数到vector对象,计算并输出每对相邻元素的和。如果读入元素个数为奇数,则提示用户最后一个元素没有求和,并输出其值。
分析:
此例最关键的技术是找到当输入的元素为奇数时i的变化规律。
本例是判断过界的方法;
也可以用下标i==x.size()-1来判断是否到了最后一个单元素更妙。即求和部分可改为:
for(i=0;i<x.size();i+=2)
{
if(i==x.size()-1)//当为单数时,最后一个单元素就是size()-1;
{
cout<<x[i];
}
else cout<<x[i]+x[i+1]<<" ";
}
//=============================================================================
程序一如下:
include "iostream"
#include "string"
#include "vector"
using namespace std;
int main()
{
vector<int> n;
int x;
while (cin>>x)
{
n.push_back(x);
}
for(vector<int>::size_type i=0;i<n.size();i=i+2)
{
if((i+1)==n.size()) cout<<n[n.size()-1];//如果后一个出界了,就显示最后一个元素
else cout<<n[i]+n[i+1]<<" ";
}
getchar();
return 0;
}
//=============================================================================
程序二如下:
#include "iostream"
#include "vector"
#include "string"//一定要这一句
using namespace std;
int main()
{
vector<int> x;
int w;
while(cin>>w)
x.push_back(w);
fflush(stdin);
vector<int>::size_type a;
for(a=0;a<x.size();a+=2)
{
if(a==x.size()-1)//当为单数时,最后一个单元素就是size()-1;
{
cout<<x[a];
}
else cout<<x[a]+x[a+1]<<" ";
}
getchar();
return 0;
}
//=============================================================================
程序三如下:
对上面的程序,我们用两个文件来实现,主程序为:main.cpp 函数库文件为func.cpp 将此两文件都包含在一个工程中。
main.cpp文件为:
#include "iostream"
#include "string"
#include "vector"
using namespace std;
int main()
{
void DisplaySum(vector<int> n1);
vector<int> n;
int x;
while (cin>>x)
{
n.push_back(x);
}
DisplaySum(n);//把整个容器当参数传到函数去
getchar();
return 0;
}
func.cpp文件为:
#include "iostream"
#include "vector"
using namespace std;//没有这一句会出错
void DisplaySum(vector<int> n1) //vector容器一样可以做函数的参数
{
for(vector<int>::size_type i=0;i<n1.size();i=i+2)
{
if((i+1)==n1.size()) cout<<n1[n1.size()-1];
else cout<<n1[i]+n1[i+1]<<" ";
}
}