给定两个整型数组,本题要求找出不是两者共有的元素。
输入格式:
输入分别在2行中给出2个整型数组,每行先给出正整数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>
#include <stdlib.h>
int main()
{
int a[20], b[20], arr[40];
int i, j, n1, n2, isSame, isExist, index = 0;
scanf("%d", &n1);
for (i=0; i<n1; i++) {
scanf("%d", &a[i]);
}
scanf("%d", &n2);
for (i=0; i<n2; i++) {
scanf("%d", &b[i]);
}
for (i=0; i<n1; i++) {
isSame = 0;
for (j=0; j<n2; j++) {
if (a[i] == b[j] ) {
isSame = 1;
break;
}
}
if (!isSame) {
isExist = 0;
for (j=0; j<index; j++) {
if (a[i] == arr[j]) {
isExist = 1;
break;
}
}
if (!isExist) {
arr[index++] = a[i];
}
}
}
for (i=0; i<n2; i++) {
isSame = 0;
for (j=0; j<n1; j++) {
if (b[i] == a[j]) {
isSame = 1;
break;
}
}
if (!isSame) {
isExist = 0;
for (j=0; j<index; j++) {
if (b[i] == arr[j]) {
isExist = 1;
break;
}
}
if (!isExist) {
arr[index++] = b[i];
}
}
}
for (i=0; i<index-1; i++) {
printf("%d ", arr[i]);
}
printf("%d", arr[index-1]);
return 0;
}