实验7-1-4-一维数组 找出不是两个数组共有的元素 (20 分)
Posted nekonekomiao
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实验7-1-4-一维数组 找出不是两个数组共有的元素 (20 分)相关的知识,希望对你有一定的参考价值。
给定两个整型数组,本题要求找出不是两者共有的元素。
输入格式:
输入分别在两行中给出两个整型数组,每行先给出正整数N(≤),随后是N个整数,其间以空格分隔。
输出格式:
在一行中按照数字给出的顺序输出不是两数组共有的元素,数字间以空格分隔,但行末不得有多余的空格。题目保证至少存在一个这样的数字。同一数字不重复输出。
输入样例:
10 3 -5 2 8 0 3 5 -15 9 100
11 6 4 8 2 6 -5 9 0 100 8 1
输出样例:
3 5 -15 6 4 1
1 #include <stdio.h>
2 int main()
3
4 int one[30] = 0 ;
5 int two[30] = 0 ;
6 int three[30] = 12 ;
7 int N,M,i,j,h,k=0;
8 scanf("%d", &N);
9 for (i = 0; i < N; i++)
10 scanf("%d", &one[i]);
11
12 scanf("%d", &M);
13 for (j = 0; j < M; j++)
14 scanf("%d", &two[j]);
15
16 int cnt = 0;
17 for (i = 0; i < N; i++)
18 cnt = 0;
19 for (j = 0; j < M; j++)
20 if (one[i] == two[j])
21 cnt = 1;
22 break;
23
24
25 if (cnt == 0)
26 for (h = 0; h < k+1; h++)
27 if (three[h] == one[i]&&three[h]!=0)
28 cnt = 1;
29
30
31 if (cnt == 0)
32 three[k] = one[i];
33 k++;
34
35
36
37 for (j = 0; j < M; j++)
38 cnt = 0;
39 for (i = 0; i < N; i++)
40 if (two[j] == one[i])
41 cnt = 1;
42 break;
43
44
45 if (cnt == 0)
46 for (h = 0; h < k + 1; h++)
47 if (three[h] == two[j]&&three[h] != 0)
48 cnt = 1;
49
50
51 if (cnt == 0)
52 three[k] = two[j];
53 k++;
54
55
56
57 for (h = 0; h < k - 1; h++)
58 printf("%d ", three[h]);
59
60 printf("%d", three[h]);
61 return 0;
62
63
第一次忽略了输出的数有0的情况,其与数组初始化为0冲突,改进了这行代码后能解决当three[h]等于零时造成的错误答案。
以上是关于实验7-1-4-一维数组 找出不是两个数组共有的元素 (20 分)的主要内容,如果未能解决你的问题,请参考以下文章