第一种方法,将两个数组的值一一遍历,找寻有没有相等的数,代码如下
#include<stdio.h>
#include<stdlib.h>
#include<stdlib.h>
int main()
{
int arr1[] = { 1, 2, 3, 5, 6, 7};
int arr2[] = { 1, 3, 4 };
int i = 0;
int j = 0;
for (i = 0; i <= sizeof(arr1) / sizeof(arr1[0]); i++)
{
for (j = 0; j < sizeof(arr2) / sizeof(arr2[0]); j++)
{
if (arr1[i] == arr2[j]) //遍历两个数组,找寻相等的数
{
printf("有\n");
break; //此时break跳出小循环
}
}
if (arr1[i] == arr2[j])
{
break; //此时如果不写if条件直接写break,会在i循环第一遍时就跳出来,导致后面的数不能再比较
}
}
if (i == sizeof(arr1) / sizeof(arr1[0])) //当所有的数都比较完还没有发现有相同的数,此时就是没有相同元素,输出没有
{
printf("没有\n");
}
system("pause");
return 0;
}
{
int arr1[] = { 1, 2, 3, 5, 6, 7};
int arr2[] = { 1, 3, 4 };
int i = 0;
int j = 0;
for (i = 0; i <= sizeof(arr1) / sizeof(arr1[0]); i++)
{
for (j = 0; j < sizeof(arr2) / sizeof(arr2[0]); j++)
{
if (arr1[i] == arr2[j]) //遍历两个数组,找寻相等的数
{
printf("有\n");
break; //此时break跳出小循环
}
}
if (arr1[i] == arr2[j])
{
break; //此时如果不写if条件直接写break,会在i循环第一遍时就跳出来,导致后面的数不能再比较
}
}
if (i == sizeof(arr1) / sizeof(arr1[0])) //当所有的数都比较完还没有发现有相同的数,此时就是没有相同元素,输出没有
{
printf("没有\n");
}
system("pause");
return 0;
}
第二种方法,相对第一种方法来说优化了一点,利用变量count作为计数器,如果有相同的元素,就给count加1,最后判断count是否为0,为0则没有,不为0则有,代码如下
#include<stdio.h>
#include<stdlib.h>
#include<stdlib.h>
int main()
{
int arr1[] = { 1, 2, 3 };
int arr2[] = { 5, 6, 4, 3 };
int i = 0;
int j = 0;
int count = 0;
for (i = 0; i < sizeof(arr1) / sizeof(arr1[0]); i++)
{
for (j = 0; j < sizeof(arr2) / sizeof(arr2[0]); j++)
{
if (arr1[i] == arr2[j])
{
count++; //发现有相同元素时给变量count的值加一
break; //此时跳出小循环
}
}
if (count != 0) //发现count的值不为0,此时说明有相同元素,跳出大循环
{
break;
}
}
{
int arr1[] = { 1, 2, 3 };
int arr2[] = { 5, 6, 4, 3 };
int i = 0;
int j = 0;
int count = 0;
for (i = 0; i < sizeof(arr1) / sizeof(arr1[0]); i++)
{
for (j = 0; j < sizeof(arr2) / sizeof(arr2[0]); j++)
{
if (arr1[i] == arr2[j])
{
count++; //发现有相同元素时给变量count的值加一
break; //此时跳出小循环
}
}
if (count != 0) //发现count的值不为0,此时说明有相同元素,跳出大循环
{
break;
}
}
//判断count的值是否为0,为0说明没有相同元素,不为0说明有相同元素
if (count == 0)
{
printf("没有\n");
}
else if (count > 0) //如果直接写else就忽略了count可能为负数这一情况
{
printf("有\n");
}
system("pause");
return 0;
}
if (count == 0)
{
printf("没有\n");
}
else if (count > 0) //如果直接写else就忽略了count可能为负数这一情况
{
printf("有\n");
}
system("pause");
return 0;
}