数组的异或集---c语言解决办法

【问题描述】
从标准输入中输入两组整数(每行不超过20个整数,每组整数中元素不重复),合并两组整数,去掉在两组整数中都出现的整数,并按从大到小顺序排序输出。
【输入形式】
首先输入第一组整数,以一个空格分隔各个整数;然后在新的一行上输入第二组整数,以一个空格分隔,行末有回车换行。
【输出形式】
按从大到小顺序排序输出合并后的整数集(去掉在两组整数中都出现的整数,以一个空格分隔各个整数)。
【样例输入】
5 1 4 32 8 7 9 -6
5 2 87 10 1
【样例输出】
87 32 10 9 8 7 4 2 -6
【样例说明】
第一组整数为5 1 4 32 8 7 9 -6,第二组整数分别为5 2 87 10 1。将第一组和第二组整数合并(去掉在两组整数中都出现的整数5和1),并从大到小顺序排序后结果为87 32 10 9 8 7 4 2 -6。
#include <stdio.h>
#include <stdlib.h>

int main()
{
int a[20],b[20],c[40];
int i,j,a_,b_,c_;
for(i=0;i<20;i++)
{
scanf("%d",&a[i]);
if(getchar()’\n’)
{
break;
}
}
a_=i+1;//数组a的项数
for(i=0;i<20;i++)
{
scanf("%d",&b[i]);
if(getchar()
’\n’)
{
break;
}
}
b_=i+1;//数组b的项数
c_=a_+b_;//数组c的项数
for(i=0;i<a_;i++)
{
c[i]=a[i];
}//将数组a存入数组c
for(i=a_;i<c_;i++)
{
c[i]=b[i-a_];
}//将数组b存入数组c
for(i=c_-2;i>=0;i–)
{
for(j=0;j<=i;j++)
{
if(c[j]<c[j+1])
{
int temp;
temp=c[j];
c[j]=c[j+1];
c[j+1]=temp;
}

    }
}//将数组c排序
if(c[0]!=c[1])
{
    printf("%d ",c[0]);
}
for(i=1;i<c_-1;i++)
{
    if(c[i]==c[i-1] || c[i]==c[i+1])
    {
        continue;
    }
    printf("%d ",c[i]);
}
if(c[c_-1]!=c[c_-2])
{
    printf("%d",c[c_-1]);
}
return 0;

}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值