当前位置:网站首页>PTA 找出不是两个数组共有的元素
PTA 找出不是两个数组共有的元素
2022-08-09 10:58:00 【拾荒大妈】
给定两个整型数组,本题要求找出不是两者共有的元素。
输入格式:
输入分别在两行中给出两个整型数组,每行先给出正整数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
思路:
两个整型数组分别为str1和str2,首先找出str1中不是两数组共有的元素,存入数组a中。然后找出str2中不是两数组共有的元素,存入数组a中。因题目要求同一数字不能重复输入,所以删除a中的重复元素,然后输出数组a。
#include<stdio.h>
#include<string.h>
int main()
{
int m,n;
scanf("%d",&m);
int str1[m];
int i=0,j;
while(i<m)
scanf("%d",&str1[i]),i++;
scanf("%d",&n);
int str2[n];
i=0;
while(i<n)
scanf("%d",&str2[i]),i++;
int a[1000];
int b=0;
for(i=0;i<m;i++)//找出str1中不是两组共有的元素,并存入数组a中
{
for(j=0;j<n;j++)
{
if(str1[i]==str2[j])
break;
}
if(j==n)
a[b]=str1[i],b++;
}
for(i=0;i<n;i++)//找出str2中不是两组共有的元素,并存入数组a中
{
for(j=0;j<m;j++)
{
if(str2[i]==str1[j])
break;
}
if(j==m)
a[b]=str2[i],b++;
}
for(i=0;i<b;i++)//如果a中有重复元素,则删除重复的后一个元素
for(j=i+1;j<b;j++)
{
if(a[i]==a[j])
{
int s=j;
while(s<b-1)
a[s]=a[s+1],s++;
b--;
}
}
i=0;
while(i<b-1)//输出数组
printf("%d ",a[i]),i++;
printf("%d",a[b-1]);
return 0;
}
边栏推荐
猜你喜欢
随机推荐
剖析STM32F103时钟系统
FreeRTOS列表和列表项源码分析
1009 Product of Polynomials C语言多项式乘积(25分)
FreeRTOS任务创建源码分析
Solve 1. tensorflow runs using CPU but not GPU 2. GPU version number in tensorflow environment 3. Correspondence between tensorflow and cuda and cudnn versions 4. Check cuda and cudnn versions
获取指定年度所有周的工具类
真香!肝完Alibaba这份面试通关宝典,我成功拿下今年第15个Offer
微信小程序——天气查询
AQS同步组件-FutureTask解析和用例
日期工具类
CentOS6.5 32bit安装Oracle、ArcSde、Apache等配置说明
CAN总线发送数据
基于STM32F103移植FreeRTOS
Beauty Values
GOPROXY 中国代理
caffe ---make all editing error
1008 Elevator (20分)
cnn的输入输出
OpenSSF's open source software risk assessment tool: Scorecards
Preparation for gold three silver four: how to successfully get an Ali offer (experience + interview questions + how to prepare)