PTA7-88 找出不是两个数组共有的元素 (20分)

简介: PTA7-88 找出不是两个数组共有的元素 (20分)

7-88 找出不是两个数组共有的元素 (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>#include<math.h>intmain()
{   
inta,b,max;
intnum1[20];   //用来存放数组一 intnum2[20];   //用来存放数组二 intnum3[20];   //用来存放不是两个数组共有的元素 intflag1[20];  //用来去重 intcount=0;    //用来计数,不是两个数组共有的元素的个数 intnum4[20];   //用来存放最后的结果, intnnn=0;      //num4的长度 //数组1 scanf("%d",&a);
for(inti=0;i<a;i++){
scanf("%d",&num1[i]);
    }
//数组二 scanf("%d",&b);
for(inti=0;i<b;i++){
scanf("%d",&num2[i]);
    }
//从数组一中找数组二中没有的 for(inti=0;i<a;i++){
boolflag=true;
for(intj=0;j<b;j++){
if(num1[i]==num2[j]){
flag=false;
break;  
            }   
        }
if(flag){
num3[count]=num1[i];
flag1[count]=1;
count++;
        }
    }
//从数组二中找数组一中没有的 for(inti=0;i<b;i++){
boolflag=true;
for(intj=0;j<a;j++){
if(num2[i]==num1[j]){
flag=false;
break;  
            }   
        }
if(flag){
num3[count]=num2[i];
flag1[count]=1;
count++;
        }
    }   
//去重,从前往后依次对比,如果有重复,则将对应的flag[]改为0; for(inti=0;i<count;i++){
for(intj=i+1;j<count;j++){
if(flag1[j] &&num3[i]==num3[j]){
flag1[j]=0;
            }
        }
    }
//根据flag数组,将flag=1的元素放到新的数组num4 for(inti=0;i<count;i++){       
if(flag1[i]){   
num4[nnn++]=num3[i];
        }
    }   
//遍历输出num4 for(inti=0;i<nnn;i++){
//  if(flag1[i])printf("%d",num4[i]);
if((i+1)!=nnn){
printf(" ");
        }       
    }
return0;
}
目录
相关文章
|
8月前
##CC10 牛牛的双链表求和
##CC10 牛牛的双链表求和
44 0
|
2月前
PTA-求奇数分之一序列前N项和
求奇数分之一序列前N项和
31 0
|
2月前
|
C++
【PTA】​ L1-009 N个数求和​ (C++)
【PTA】​ L1-009 N个数求和​ (C++)
113 0
【PTA】​ L1-009 N个数求和​ (C++)
|
12月前
|
算法 Java
2015 蓝桥杯省赛部分题整理(九数组分数,牌型种数,串逐位和,循环节长度,打印菱形)
2015 蓝桥杯省赛部分题整理(九数组分数,牌型种数,串逐位和,循环节长度,打印菱形)
74 0
|
9月前
|
容器
华为机试HJ80:整型数组合并
华为机试HJ80:整型数组合并
183 1
【基础算法】[PTA]-找出不是两个数组共有的元素
【基础算法】[PTA]-找出不是两个数组共有的元素
找出不是两个数组共有的元素
找出不是两个数组共有的元素
64 0
(序列)(贪心)(LIS)(区间dp)最少拦截系统
(序列)(贪心)(LIS)(区间dp)最少拦截系统
61 0
|
人工智能
(数论)(枚举)(前缀和)1230. K倍区间
(数论)(枚举)(前缀和)1230. K倍区间
69 0
C语言经典实例:11-20例:使用结构体输出学生成绩、编制万年历、验证哥德巴赫猜想、求二维数组最大最小值、数组求素数、数组元素排序、进制数的转换进制数的转换、找出次大值、重组数组(上)
C语言经典实例:11-20例:使用结构体输出学生成绩、编制万年历、验证哥德巴赫猜想、求二维数组最大最小值、数组求素数、数组元素排序、进制数的转换进制数的转换、找出次大值、重组数组(上)
C语言经典实例:11-20例:使用结构体输出学生成绩、编制万年历、验证哥德巴赫猜想、求二维数组最大最小值、数组求素数、数组元素排序、进制数的转换进制数的转换、找出次大值、重组数组(上)