实验7-1-4 找出不是两个数组共有的元素 (20分)

    技术2025-01-12  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> #define maxn 20 int input(int a[]); void search_diff(int a[],int b[],int len_a,int len_b); int c[2*maxn]; int cnt=0; int main() { int a[maxn],b[maxn]; int len_a=input(a); int len_b=input(b); search_diff(a,b,len_a,len_b); search_diff(b,a,len_b,len_a); for(int i=0;i<cnt;i++){ printf("%d",c[i]); if(i==cnt-1) printf("\n"); else printf(" "); } return 0; } int input(int a[]){ int len; scanf("%d",&len); for(int i=0;i<len;i++) scanf("%d",&a[i]); return len; } void search_diff(int a[],int b[],int len_a,int len_b){ for(int i=0;i<len_a;i++){ int isSame=0; for(int j=0;j<len_b;j++){ if(a[i]==b[j]){ isSame=1; break; } } if(!isSame){ int isExist=0; for(int k=0;k<cnt;k++){ if(a[i]==c[k]){ isExist=1; break; } } if(!isExist) c[cnt++]=a[i]; } } }
    Processed: 0.010, SQL: 9