C语言判断两个数组是否有相同的元素

来源:互联网 发布:徐州蹦花网络 编辑:程序博客网 时间:2024/05/01 01:53

一】当存在相同的元素时一步一步跳出循环

include

pragma warning(disable:4996)

int main()
{
int arr1[] = { 1, 3, 5, 7, 9 };
int arr2[] = { 1, 2, 4, 6, 8, 10 };
int i, j, flag = 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])
{
flag = 1;
printf(“两个数组有相同的元素\n”);
break;
}
}
if (flag )break;
}
if (!flag)
{
printf(“两个数组没有相同的元素\n”);
}
system(“pause”);
return 0;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
【二】使用goto语句跳出循环

include

pragma warning(disable:4996)

int main()
{
int arr1[] = { 1, 3, 5, 7, 9 };
int arr2[] = { 1,2, 4, 6, 8, 10, };
int i, j;
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”);
goto print; //如果存在相同的元素直接跳出循环
}
}
}
printf(“两个数组没有相同的元素\n”);
print:
system(“pause”);
return 0;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
【三】使用return语句直接结束该函数

include

include

pragma warning(disable:4996)

int main()
{
int arr1[] = { 1, 3, 5, 7, 9 };
int arr2[] = { 1, 4, 6, 8, 10 };
int i, j;
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”);
system(“pause”);
return 0; //如果存在相同的元素、函数直接在这里结束不再执行下去
}
}
}
printf(“两个数组没有相同的元素\n”);
system(“pause”);
return 0;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

0 0