归并两个数组并排序

#include <stdio.h>
#include<stdlib.h>
void merge(int a[],int m,int b[],int n,int c[]);
int main()
{
    int a[5],b[8],c[20];
    int i=0;
    while(i<5)
    scanf("%d",&a[i++]);
    i=0;
    while(i<8)
    scanf("%d",&b[i++]);
    merge(a,5,b,8,c);
    printf("123456\n");
    system("pause>nul");
    return 0;
}

//void merge(int a[],int m,int b[],int n,int c[])
void merge(int *a,int m,int *b,int n,int *c)
{
    int i=0,j=0;
    int k=0;
    while(i<m&&j<n)
    {
        if(a[i]<b[j])
            c[k++]=a[i++];
        else
            c[k++]=b[j++];
    }
    while(i<m)
    c[k++]=a[i++];
    while(j<n)
    c[k++]=b[j++];
    j=0;
    while(j<k)
    {
        printf("%d ",c[j++]);
    }
}

posted @ 2020-03-12 10:48  ecnu_lxz  阅读(223)  评论(0编辑  收藏  举报