关于vector的习题(一)

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]<<" ";
 }
}

 

 

 


 

你可能感兴趣的:(关于vector的习题(一))