七年( ・⊝・∞) 2021-12-19 10:33 采纳率: 60%
浏览 9

这个有关数组的怎么解决

将两个一维数组排序,合并到一个一维数组中仍然保持有序,

  • 写回答

1条回答 默认 最新

  • qzjhjxj 2021-12-19 11:00
    关注

    供参考:

    #include<stdio.h>
    #define N 20
    void sort_arry(int *a,int n)
    {
         int i,j,tmp;
         for(i=0;i<n-1;i++)
         {
             for(j=i+1;j<n;j++)
             {
                 if(a[i] > a[j])
                 {
                    tmp = a[i];
                    a[i]= a[j];
                    a[j]= tmp;
                 }
             }
         }
    }
    int main()
    {
        int a[N],b[N],c[N+N],*p,*q,*r,anum,bnum;
    
        scanf("%d",&anum);    //数组a[]的元素数
        for(p=a;p<a+anum;p++) //输入数组 a[]
            scanf("%d",p);
        sort_arry(a,anum);    //排序 升序
    
        scanf("%d",&bnum);    //数组b[]的元素数
        for(q=b;q<b+bnum;q++) //输入数组 b[]
            scanf("%d",q);
        sort_arry(b,bnum);    //排序 升序
    
        for(p=a,q=b,r=c;p<a+anum && q<b+bnum ;)//升序 合并两个数组到c[]
        {
            if(*p>*q)
            {
                *r++=*q++;
            }
            else
            {
                *r++=*p++;
            }
        }
        if(p<a+anum)
        {
            for(;p<a+anum;)
            {
                *r++=*p++;
            }
        }
        else if(q<b+bnum)
        {
            for(;q<b+bnum;)
            {
                *r++=*q++;
            }
        }
    
        for(r=c;r<c+anum+bnum;r++)//输出合并后的数组 c[]
        {
            printf("%d ",*r);
        }
        return 0;
    }
    
    
    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 12月19日

悬赏问题

  • ¥20 瑞萨RA4M1芯片刷写为arduino minima
  • ¥15 前端vue跟后端java服务部署在线上阿里云服务器
  • ¥15 fastreport怎么判断当前页数
  • ¥15 Kylin-Desktop-V10-GFB-Release-JICAI_02- 2207-Build14-ARM64.iso有没有这个版本的系统啊
  • ¥15 能不能通过蓝牙将传感器数据传送到手机上
  • ¥20 100元python和数据科学实验项目
  • ¥15 根据时间在调用出列表
  • ¥15 R 包chipseeker 安装失败
  • ¥15 Veeam Backup & Replication 9.5 还原问题
  • ¥15 vue-print-nb