大一计算机系实验题合并两个无序数组为一个有序数组,不懂就问为啥输出不了合并后数组?

#include
int mp(int x[],int n)
{
    int t,i=1,j;
    while (ifor (j=0;jif (x[j]t=x[j];
                x[j]=x[j+1];
                x[j+1]=t;
            }
        }
        i++;
    }
}
int main()
{
    int a[]={2,6,6,1,8,6,5,1,6,5,4,8},
    b[]={5,6,4,8,6,5,3,2};int l1,l2,k,h;
    l1=sizeof(a)/4;l2=sizeof(b)/4;
    mp(a,l1);mp(b,l2);
    for (k=0;k"%d",a[k]);
    }
    printf("\n");
    for (h=0;h"%d",b[h]);
    }
    
    int *p=a;int *q=b;int g=0;
    for (g=0;g"\n");    
    for (g=0;g<(l1+l2);g++)
    {
        printf("%d",p[g]);
    }
}

img

参考如下:


#include<stdio.h>
void mp(int x[],int n)
{
    int t,i=0,j;
    while (i<n - 1)
    {
        for (j=0;j<n - 1;j++)
        {
            if (x[j]<x[j+1])
            {
                t=x[j];
                x[j]=x[j+1];
                x[j+1]=t;
            }
        }
        i++;
    }
}
int main()
{
    int a[]={2,6,6,1,8,6,5,1,6,5,4,8},b[]={5,6,4,8,6,5,3,2};
    int l1,l2,k,h;
    l1=sizeof(a)/sizeof(a[0]);
    l2=sizeof(b)/sizeof(b[0]);
    mp(a,l1);
    mp(b,l2);
    int c[l1+l2];
    for (k=0;k<l1;k++)
    {
        printf("%d",a[k]);
        c[k] = a[k];
    }
    printf("\n");
    for (h=0;h<l2;h++)
    {
        printf("%d",b[h]);
        c[k+h] = b[h];
    }

    mp(c,(l1+l2));

    printf("\n"); 
    int g=0;   
    for (g=0;g<(l1+l2);g++)
    {
        printf("%d",c[g]);
    }
}

如有帮助,欢迎点赞+采纳哈!