给定两个整型数组,本题要求找出不是两者共有的元素。
输入格式:
输入分别在两行中给出两个整型数组,每行先给出正整数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>
#define MAXN 20int main()
{int a[MAXN],b[MAXN],c[20],k=0,A,B,tag=1,BOOL[20];for(int i=0;i<20;i++){BOOL[i] = 1;}scanf("%d",&A);for(int i = 0;i<A;i++){scanf("%d",&a[i]);}scanf("%d",&B);for(int i = 0;i<B;i++){scanf("%d",&b[i]);}//将两个数组存入内存;for(int i = 0;i<A;i++){for(int j = 0;j<B;j++){if(a[i] == b[j]) break;else tag++;}if(tag==B+1){c[k] = a[i];k++;}tag = 1;}//将a数组中的不相等的元素存入c数组中;for(int i = 0;i<B;i++){for(int j = 0;j<A;j++){if(a[j] == b[i]) break;else tag++;}if(tag==A+1){c[k] = b[i];k++;}tag = 1;}//将b数组中的不相等的元素存入c数组中;for(int i=0;i<k;i++){for(int j = i+1;j<k;j++){if(c[i] == c[j]) BOOL[j] = -1;}}for(int i = 0;i<k;i++){if(BOOL[i]==1){if(tag == 1){printf("%d",c[i]);tag=0;}else printf(" %d",c[i]);}}
}