辣鸡大学生求教,求两个数组的并集

从标准输入中输入两组整数(每组不超过20个整数,每组整数中元素不重复),合并两组整数,重复的整数只出现一次,并按从大到小顺序排序输出

1.定义3个数组,分别是20,20,40个元素

2.把数组1,数组2,加入数组3,相同的元素设置为0

3.对数组3进行排序,可以使用冒泡等排序方法

4.输出数组,判断大于0的才输出;

附冒泡排序法代码如下:

int a[10]={10,8,7,20,30,9,1,50,100,-1};
    int i,j,t,k;
    printf("排序之前:\n");
    for(i=0;i<10;i++)
        printf("%d\t",a[i]);
    printf("\n");
    for(i=0;i<10;i++)
    {
        printf("i=%d,第%d轮:\n",i,i+1);
        for(j=i+1;j<=9;j++)
        {
            if(a[i]>a[j])
            {
                t=a[i]; //t是临时变量
                a[i]=a[j];
                a[j]=t;    
            }
            //打印排序过程:
            printf("j=%d\t",j);
            for(k=0;k<10;k++)
                printf("%d\t",a[k]);
            printf("\n");
            //---------------
        }    
    }
    printf("排序之后:\n");
    for(i=0;i<10;i++)
        printf("%d\t",a[i]);
    printf("\n");

vector<int> vecData;

set<int> setData;

循环存入set集合,去重,然后直接调用集合排序方法

C和C++算法完整教程:https://blog.csdn.net/it_xiangqiang/category_10768339.html

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!

速戳参与调研>>>https://t.csdnimg.cn/Kf0y