欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

有序表归并【C语言】

程序员文章站 2022-04-27 10:20:49
...
#include <stdio.h>
#include <stdlib.h>
//有序表归并
struct node{
    int data[205];
    int length;
}La,Lb,Lc;

int main() {
    int m,n,i,j;
    while (scanf("%d",&m)!=EOF){
        //输入La的长度
        for (i = 0; i <m ; i++) {
            scanf("%d",&La.data[i]);
        }
        La.length=m;
        scanf("%d",&n);
        //输入Lb的长度
        for (i = 0; i <n ; i++) {
            scanf("%d",&Lb.data[i]);
        }
        Lb.length=n;
        int k=0;
        Lc.length=0;
        i=0;
        j=0;
        while (i!=La.length&&j!=Lb.length) {
            if (La.data[i] <= Lb.data[j]) {
                Lc.data[k] = La.data[i];
                i++;
                k++;
                Lc.length++;
            } else {
                Lc.data[k] = Lb.data[j];
                j++;
                k++;
                Lc.length++;
            }
        }
            if (i!=La.length){
                for(i;i<La.length;i++){
                    Lc.data[k]=La.data[i];
                    k++;
                    Lc.length++;
                }
            }
            if(j!=Lb.length){
                for (j;  j< Lb.length; j++) {
                    Lc.data[k]=Lb.data[j];
                    k++;
                    Lc.length++;
                }
            }
            int l;
            for(l=0;l<Lc.length;l++){
                if (l!=0)
                    printf(" ");
                printf("%d",Lc.data[l]);
            }
            printf("\n");
        }


    return 0;
}