练习7-4 找出不是两个数组共有的元素 (20分)
给定两个整型数组,本题要求找出不是两者共有的元素。
输入格式:
输入分别在两行中给出两个整型数组,每行先给出正整数N(≤20),随后是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
#include <stdio.h>
int notequal1[100];
int main() {
int n = 0;
scanf("%d", &n); /*第一个集合n个数字*/
int number = n;
int count [number];
for(int i = 0;i < n; i++){
scanf("%d",&count[i]);
}
int n2 = 0;
scanf("%d",&n2);
const int number2 = n2;
int count2[number2];
for(int i = 0; i < n2; i++){
scanf("%d",&count2[i]);
}
int book;
int cnt = 0;
for(int i = 0;i < n; i++){
book = 0;
for(int k = 0; k < n2; k++){
if(count[i] == count2[k]){
book = 1;
break;
}
}if (book == 0){
notequal1[cnt ++] = count[i];
}
}
for(int m = 0;m < n2; m++){
int book3 = 0;
for(int o = 0; o < n; o++){
if(count2[m] == count[o]){
book3 = 1;
break;
}}
if(book3 == 0){
notequal1[ cnt++] = count2[m];
}}
printf("%d",notequal1[0]);
for( int c = 1; c < cnt; c++){
int book2 = 0;
for(int k = 0; k < c; k++){
if (notequal1[c] == notequal1[k]){
book2 = 1;
}
}if (book2 ==0){
printf(" %d",notequal1[c]);
}
}
return 0;
}