判斷兩個陣列中是否有相同的元素 C語言
阿新 • • 發佈:2019-02-16
判斷兩個陣列中是否有相同的元素
方法一:用第一個陣列的第一個元素遍歷第二個陣列的每一個元素,然後依次用第一個陣列的第二個第三個等等元素遍歷陣列二的每一個元素。
#include<stdio.h>
int main()
{
int i = 0;
int j = 0;
int count = 0;
int arr1[] = { 1, 2, 3, 4, 5 };
int arr2[] = { 5, 4, 3, 8, 9 };
int len1 = sizeof(arr1) / sizeof(arr1[0]);
int len2 = sizeof (arr2) / sizeof(arr2[0]);
for (i = 0; i < len1; i++)
{
for (j = 0; j < len2; j++)
{
if (arr1[i] == arr2[j]) //陣列元素值相等
{
count++;
printf("相同的元素是:%d\n", arr2[j]);
break;
}
}
}
printf ("有%d個相同元素", count);
return 0;
}
方法二: 兩個相同數字異或的結果等於零
#include<stdio.h>
int main()
{
int i = 0;
int j = 0;
int count = 0;
int arr1[] = { 1, 2, 3, 4, 5 };
int arr2[] = { 5, 4, 3, 8, 9 };
int len1 = sizeof(arr1) / sizeof(arr1[0]);
int len2 = sizeof(arr2) / sizeof (arr2[0]);
for (i = 0; i < len1; i++)
{
for (j = 0; j < len2; j++)
{
int t = arr1[i] ^ arr2[j];
if (t == 0)
{
count++;
printf("相同元素有:%d\n", arr2[j]);
break;
}
}
}
printf("有%d個相同的元素。\n",count);
return 0;
}