对于两个int型数组如何求出两个数组相同元素的个数
#include<bits/stdc++.h>
#include<algorithm>
using namespace std;
bool compare(int a,int b)
{
return a<b;
}
int main()
{
int count=0;
int i,j;
int a[10]={1,5,5,5,5,0,3,2,7,4};
int b[5]={2,1,5,3,5};
sort(a,a+10,compare);//按从小到大排序
for(i=0;i<10;i++)
cout<<a[i]<<" ";
cout<<endl;
sort(b,b+5,compare);//按从小到大排序
for(j=0;j<5;j++)
cout<<b[j]<<" ";
cout<<endl;
i=0;
j=0;
while(i<10&&j<5)/// 重点部分
{
if(a[i]==b[j])
{
if(a[i]==a[i-1])//判断是否有连续多个值相等
{
i++;
j++;
}
else
{
count++;
i++;
j++;
}
}
else if(a[i]<b[j])//因为a[i]是按从小到大排序 ,所以当a[i]<b[j],应该比较a[i+1]和b[j]的大小
i++;
else //同理,b[j]是按从小到大排序 ,所以当a[i]>b[j],应该比较a[i]和b[j+1]的大小
j++;
}///
cout<<"count="<<count<<endl;
return 0;
}