当前位置: 代码迷 >> 综合 >> 实验7-1-4 找出不是两个数组共有的元素 (20分)
  详细解决方案

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

热度:74   发布时间:2024-02-01 12:13:34.0

给定两个整型数组,本题要求找出不是两者共有的元素。

输入格式:

输入分别在两行中给出两个整型数组,每行先给出正整数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]);}}
}

 

  相关解决方案