首页 > 编程语言 > 详细

练习7-4 找出不是两个数组共有的元素

时间:2019-12-02 16:09:05      阅读:183      评论:0      收藏:0      [点我收藏+]

技术分享图片

 1 #include<stdio.h>
 2 
 4 int array_in(int x, int a[], int n);
 5 
 6 int main(void)
 7 {
 8     int m, n, k;        //三个数组的大小
 9     
10     /*第一个数组,数组长度是变量,C99支持,但vs不支持*/ 
11     scanf("%d", &m);
12     int a[m];
13     for (int i = 0; i < m; i++)
14     {
15         scanf("%d", &a[i]);
16     }
17     
18     /*第二个数组*/ 
19     scanf("%d", &n);
20     int b[n];
21     for (int i = 0; i < n; i++)
22     {
23         scanf("%d", &b[i]);
24     }
25     
26     /*第三个数组,有可能两个数组中的元素都不相同*/ 
27     int c[m + n];
28     
29     int count = 0;        //两个数组中不相同元素的个数 
30     
31     /*查找到不相同的元素,放到第三个数组中*/ 
32     for (int i = 0; i < m; i++)
33     {
34         if (array_in(a[i], b, n) == 0 && array_in(a[i], c, count) == 0)        //避免第一个数组中有多个相同的元素在第二数组中不存在的情况 
35         {
36             c[count] = a[i];
37             count++;
38         }        
39     }
40     for (int i = 0; i < n; i++)
41     {
42         if (array_in(b[i], a, m) == 0 && array_in(b[i], c, count) == 0)
43         {
44             c[count] = b[i];
45             count++;
46         }        
47     }
48     
49     for(int i = 0; i < count; i++)
50     {
51         if (i == 0)
52         {
53             printf("%d", c[i]);
54         }
55         else
56         {
57             printf(" %d", c[i]);
58         }
59     }
60     
61     return 0;    
62 }
63 
64 /*
65     判断x是否在数组a中;
66     如果在,返回1;不在,返回0;
67     n是查找数组a中元素的长度; 
68 */
69 int array_in(int x, int a[], int n)
70 {
71     int ret = 0;
72     
73     for (int i = 0; i < n; i++)
74     {
75         if (x == a[i])
76         {
77             ret = 1;
78             break;
79         }
80     }
81     
82     return ret;    
83 }

 

练习7-4 找出不是两个数组共有的元素

原文:https://www.cnblogs.com/2018jason/p/11970460.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!