输入两个数组中要存放的元素个数及元素值(不超过50个),判断这两个数组中是否有相同的数字。
当两组数中有相同数字时,输出YES,否则,输出NO
/* * Copyright (c) 2014,烟台大学计算机学院 * All right reserved. * 作者:邵帅 * 文件:demo.cpp * 完成时间:2014年12月10日 * 版本号:v1.0 */ #include<iostream> using namespace std; bool existthesame(int *a,int n1,int *b,int n2); int main() { int a[50]; int b[50]; int i, n1, n2; cin>>n1; for (i=0;i<n1;i++) cin>>a[i]; cin>>n2; for (i=0;i<n2;i++) cin>>b[i]; bool flag=existthesame(a,n1,b,n2); if(flag==true) cout<<"YES "; else cout<<"NO "; return 0; } bool existthesame(int *a,int n1,int *b,int n2) { int i,j; for (i=0;i<n1;i++) for (j=0;j<n2;j++) { if (*(a+i)==*(b+i)) return true; else continue; } }
运行结果:
输出两个有序数列(不超过50个)中有多少相同数据,并输出这些数据。
第一行输入这两组数的个数(不超过50个)。
后面两行分别输入这两组数。同一序列中的数字不会重复。
第一行输出相同数字的个数,第二行输出这些相同的数字。
若没有相同的数字,输出NULL。
<pre name="code" class="cpp">/* * Copyright (c) 2014,烟台大学计算机学院 * All right reserved. * 作者:邵帅 * 文件:demo.cpp * 完成时间:2014年12月10日 * 版本号:v1.0 */ #include<iostream> using namespace std; int sameNum(int *a,int n1,int *b,int n2, int *c); int main() { int a[50]; int b[50]; int c[50]; int i, n1, n2,n3; cin>>n1; cin>>n2; for (i=0; i<n1; i++) cin>>a[i]; for (i=0; i<n2; i++) cin>>b[i]; n3 = sameNum(a,n1,b,n2,c); if(n3==0) cout<<"NULL "; else { cout<<n3<<endl; for(i=0; i<n3; i++) cout<<c[i]<<" "; cout<<endl; } return 0; } int sameNum(int *a,int n1,int *b,int n2, int *c) { int i,j,n=0; for (i=0; i<n1; i++) for (j=0; j<n2; j++) { if (*(a+i)==*(b+j)) { *(c+n)=*(a+i); n++; continue; } else continue; } return n; }
运行结果:
<img src="http://img.blog.csdn.net/20141210170642421?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbWF5dWtvMjAxMg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
@ Mayuko