/*
* Copyright (c) 2013, 烟台大学计算机学院
* All rights reserved.
* 作 者: 刘中林
* 完成日期:2013 年 12月 16 日
* 版 本 号:v1.0
* 问题描述:判断两数组中是否有相同的元素
* 输出:直接输出判断结果
*/
#include<iostream>
using namespace std;
bool existthesame(int *a,int n1,int *b,int n2);
int main()
{
int a[]={1,4,7,8};
int b[]={2,5,6,9,10};
int n1=sizeof(a)/sizeof(a[0]);
int n2=sizeof(b)/sizeof(b[0]);
bool flag=existthesame(a,n1,b,n2);
if(flag==true)
cout<<"两个有序数组中存在相同的数字!\n";
else
cout<<"两个有序数组中不存在相同的数字!\n";
return 0;
}
bool existthesame(int *a,int n1,int *b,int n2)
{
int *p,*q;
bool same=false;
//将两个数组(指针指向的两组值)中的元素两两比较,直至发现有一个是想同的
for(p=a;p<a+n1&&!same;++p) //循环结束条件如是写可以及时终止循环
{
for(q=b;q<b+n2&&!same;++q)
if (*p==*q)
same=true;
}
return same;
}
*样例输出:
*心得体会:抄之有道,贺老师的过人理念之一。