我是靠谱客的博主 超级啤酒,最近开发中收集的这篇文章主要介绍2021-10-21 74 题 实验7-1-4-一维数组 找出不是两个数组共有的元素 (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

结尾无空行

思路:

1,输出和第二个数组不重复,且自身数组中存在重复的数:在自身数组内查找,看这个数前面有没有数重复,如果重复就改变标志,输出未改变标志的数,这样满足条件的数就只出现一次;

int count=0;
for(int j=i-1;j>=0;j--){
if(a[i]==a[j]){count=1;	break;}
}

2,输出和第二个数组不重复,且自身数组中也不存在重复的数:在第二个数组中查找,看是否有相同的的数,重复的话改变标志,输出未改变标志的数,不重复的数。

int flag=1;
for(int k=0;k<m;k++){
if(a[i]==b[k]){flag=0;break;}
}

3,输出所有数:输出数字间有间隔的方法有很多种,这里用标志的方法:

int local=1;
if(flag==1&&count==0){
if(local!=1)putchar(' ');
local=0;
printf("%d",a[i]);
}

4,对第二个数组进行同样的操作;

 完整代码:

#include<stdio.h>
int main(){
//定义两个数组
int n,a[20];
scanf("%d",&n);
for(int i=0;i<n;i++){
scanf("%d",&a[i]);
}
int m,b[20];
scanf("%d",&m);
for(int j=0;j<m;j++){
scanf("%d",&b[j]);
}
int local=1;//常用的输出结尾无空格的做法;
//在第一行中找出没有重复的数据
for(int i=0;i<n;i++){
int flag=1;
int count =0;
//和自身的数组比较找出重复的数据;
for(int j=i-1;j>=0;j--){
if(a[i]==a[j]){count=1;	break;}
}
//与另一个数组比较找出重复的数据
for(int k=0;k<m;k++){
if(a[i]==b[k]){flag=0;break;}
}
//输出结尾无空格的格式;
if(flag==1&&count==0){
if(local!=1)putchar(' ');
local=0;
printf("%d",a[i]);
}
}
//在第二行中找出不重复的数据;
for(int i=0;i<m;i++){
int flag=1;
int count=0;
for(int j=i-1;j>=0;j--){
if(b[i]==b[j]){count=1;break;}
}
for(int k=0;k<n;k++){
if(b[i]==a[k]){flag=0;break;}
}
if(flag==1&&count==0){
if(local!=1)putchar(' ');
local=0;
printf("%d",b[i]);
}
}
return 0;
}

最后

以上就是超级啤酒为你收集整理的2021-10-21 74 题 实验7-1-4-一维数组 找出不是两个数组共有的元素 (20 分)的全部内容,希望文章能够帮你解决2021-10-21 74 题 实验7-1-4-一维数组 找出不是两个数组共有的元素 (20 分)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(71)

评论列表共有 0 条评论

立即
投稿
返回
顶部