XHXD. 2023-11-12 16:08 采纳率: 100%
浏览 4
已结题

c语言数组排序问题询问

想要按照数字大小顺序输入两个数组,之后合并成一个从小到大的有序数组,想问一下代码哪里出了问题,结果打出来是乱码

#include<stdio.h>
#include<stdlib.h>
int main()
{
    int a[4];
    int b[3];
    printf("Input:");
    for(int i=0;i<4;i++)
    {
        scanf("%d",&a[i]);
    }
    printf("\n");
    for(int j=0;j<3;j++)
    {
        scanf("%d",&b[j]);
    }
    int c[7];
    int q=0,w=0,k=0;
    for(int k=0;k<7;k++)
    {   
        if(q>=4||w>=3) {
            break;
        }
       
        if(a[q]<=b[w])
        {
            c[k]=a[q];
            q++;
        }
    else
        {
            c[k]=b[w];
            w++;
        }
    }
    if(q>=4)
    {
        for(;k<7;k++)
        {
            if(w>=3) break;
            c[k]=b[w];
            w++;
        }
     } 
     if(w>=3)
     {
     for(;k<7;k++)
        {
            c[k]=a[q];
            q++;
        }
     }
    
    printf("output:");
    for(int l=0;l<7;l++)
    {
        printf("%d ",&c[l]);
    }
    system("pause");
    return 0;
}


  • 写回答

2条回答 默认 最新

  • micthis 2023-11-12 16:45
    关注

    有一点小问题,好了:

    #include<stdio.h>
    #include<stdlib.h>
    int main()
    {
        int a[4];
        int b[3];
        printf("Input:");
        for(int i=0;i<4;i++)
        {
            scanf("%d",&a[i]);
        }
        printf("\n");
        for(int j=0;j<3;j++)
        {
            scanf("%d",&b[j]);
        }
        int c[7];
        int q=0,w=0,k=0;
        for(k=0;k<7;k++)
        {   
            if(q>=4||w>=3) {
                break;
            }
            if(a[q]<=b[w])
            {
                c[k]=a[q];
                q++;
            }
        else
            {
                c[k]=b[w];
                w++;
            }
        }
        if(q>=4)
        {
            for(;k<7;k++)
            {
                c[k]=b[w];
                w++;
            }
         } 
         else
         {
             for(;k<7;k++)
             {
                c[k]=a[q];
                q++;
             }
         }
        printf("output:");
        for(int l=0;l<7;l++)
        {
            printf("%d ",c[l]);
        }
        system("pause");
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 12月1日
  • 已采纳回答 11月23日
  • 创建了问题 11月12日

悬赏问题

  • ¥15 hexo安装这种情况怎么办
  • ¥100 找hCaptcha图形验证码自动识别解决方案
  • ¥15 启动pycharm出错
  • ¥15 Windows Script Host 无法找到脚本文件"C:\ProgramData\Player800\Cotrl.vbs”
  • ¥15 matlab自定义损失函数
  • ¥15 35114 SVAC视频验签的问题
  • ¥15 impedancepy
  • ¥15 求往届大挑得奖作品(ppt…)
  • ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
  • ¥50 浦育平台scratch图形化编程