c语言编程,请大神们教教我?

如何判断两个数组中有多少个相同的元素?(当一个数组里有相同的元素时,比如a[4]={1,2,4,4},b[4]={3,4,4,4},要求输出两个数组相同元素个数为2个)

试试这个代码

#include"stdio.h"int main()

{

int a[7] = {3,1,3,4,4,6,8};

int b[6] = {1,3,2,3,3,4};

int i=0,j=0,k=0,l=0, samenum=0;

int na = sizeof(a)/sizeof(int);

int nb = sizeof(b)/sizeof(int);


for(i=0;i<na;i++)

{

for(j=0;j<nb;j++)

{

if(a[i]==b[j])

{

 for(k=i;k<na-1;k++)

    a[k]=a[k+1];

 for(l=j;l<nb-1;l++)

    b[l]=b[l+1];

 na--;

 nb--;

 i--;

 j--;

 samenum++;

}

}

}

printf("\nsame numbers of two array is: %d\n",samenum);

return 0;

}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-06-11
#include<stdio.h>
int main()
{
int a[4] = {1,2,4,4};
int b[4] = {3,4,4,4};
int i, j;
int sum = 0;
for(i = 0; i < 4; i++)
for(j = 0; j < 4; j++)
{
if(a[i] == b[j])
{
sum++;
break;
}
}
printf("两个数组重复个数为%d\n", sum);
return 0;
}
第2个回答  2021-06-11
双重for循环,最笨的方法

说下思路:
双循环遍历,如果遇到一样得元素,就从两个数组里移除这个元素,并把相同得数量加一,
直到某个数组遍历完
相似回答