求两组整数的交集 【问题描述】 读入两组整数(每组不超过20个整数,并且同一组中的整数各不相同),编程求两组整数的交集,即在两组整数中都出现的整数,并按从大到小的顺序输出。若交集为空,则什么都不输

该博客介绍了如何用C语言编程求两组整数的交集,要求输入的每组整数不超过20个且互不相同,输出的交集按从大到小的顺序排列。通过示例输入和输出展示了具体实现过程。

题头的话:长按点赞可私我赠送50+本C与C++书籍电子书资源

求两组整数的交集

【问题描述】

读入两组整数(每组不超过20个整数,并且同一组中的整数各不相同),编程求两组整数的交集,即在两组整数中都出现的整数,并按从大到小的顺序输出。若交集为空,则什么都不输出。

【输入形式】

先输入第一组整数的个数,然后在下一行输入第一组整数;然后再以同样的方式输入第二组整数。

【输出形式】

按从大到小顺序输出两组整数的交集(每个整数占6位,即按%6d格式输出每个整数)。

【样例输入】

8

5 -105 0 4 32 -87 9 -60

7

5 2 87 10 -105 0 32

【样例输出】

32     5     0  -105

【样例说明】

第一组整数有8个,第二组整数有7个,在这两组整数中都出现的整数有4个,按从大到小顺序排序后输出的结果为:32 5 0 -105

#include <stdio.h>

int main()

{

    int a[120],b[120],c[120],i,j,k=-1,x,y,t;

    scanf("%d",&x);

    for(i=0;i<x;i++)

        scanf("%d",&a[i]);

    scanf("%d",&y);

    for(i=0;i<y;i++)

        scanf("%d",&b[i]);

    for(i=0;i<x;i++)

    {

        for(j=0;j<y;j++)

        {

           if(a[i]==b[j])

           {

               k++;

               c[k]=a[i];

               break;

           }

        }

    }

    for(i=0;i<k;i++)

        for(j=0;j<k;j++)

    {

        if(c[j]<c[j+1])

        {

            t=c[j];

            c[j]=c[j+1];

            c[j+1]=t;

        }

    }

    for(i=0;i<=k;i++)

        printf("%6d",c[i]);

        return 0;

}
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值