题目:判断两个数组中是否有相同的元素,有就输出“有”,没有就输出“没有”。
解法一:用第一个数组中的所有元素与第二个数组中的所有元素相比较,若有相同元素,则停止寻找并输出“有”;若比较完所有的数后都没有相同的元素则输出“没有”。
代码如下:
#include <stdio.h>
int main()
{
int arr1[] = { 1, 3, 5, 6, 7, 9 };
int arr2[] = { 2, 4, 6, 8, 3 };
int i = 0;
for (i = 0; i < 6; i++)
{
int j = 0;
for (j = 0; j < 5; j++)
{
if (arr1[i] == arr2[j])
{
printf("有\n");
break;
}
}
if (arr1[i] == arr2[j])
{
break;
}
}
if (i == 6)
{
printf("没有\n");
}
return 0;
}
解法二:设一个变量count计数,若找到相同元素则count++并跳出循环;若count==0,说明两个数组中没有相同的元素。
代码如下:
#include <stdio.h>
int main()
{
int arr1[] = { 1, 3, 5, 6, 7, 9 };
int arr2[] = { 2, 4, -6, 8, -3 };
int count = 0;
int i = 0;
for (i = 0; i < 6; i++)
{
int j = 0;
for (j = 0; j < 5; j++)
{
if (arr1[i] == arr2[j])
{
count++;
break;
}
}
if (count != 0)
{
break;
}
}
if (count == 0)
{
printf("没有\n");
}
else
{
printf("有\n");
}
return 0;
}
解法三:当找到两个数组中有相同的元素时输出“有”,并且return 0,只要遇到return,main函数就结束了,后面的代码都不需要执行;当程序一直都没有输出有的时候就会输出“没有”。
#include <stdio.h>
int main()
{
int arr1[] = { 1, 3, 5, 6, 7, 9 };
int arr2[] = { 2, 4, -6, 8, -3 };
int i = 0;
for (i = 0; i < 6; i++)
{
int j = 0;
for (j = 0; j < 5; j++)
{
if (arr1[i] == arr2[j])
{
printf("有\n");
return 0;
}
}
}
printf("没有\n");
return 0;
}
每道题不同的思路就有不同的解法,多发散思维就会有更好地解答(*^▽^*)