1 #include<stdio.h> 2 3 int max(int a, int b); 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 找出不是两个数组共有的元素
猜你喜欢
转载自www.cnblogs.com/2018jason/p/11970460.html
今日推荐
周排行