两个单调不减的顺序表的的合并

#include<stdio.h>
#define listsize 100
typedef struct
{
    int data[listsize];
    int len;
} Seqlist;
void createlist(Seqlist *l,int num)
{
    int i;
    printf("输入顺序表的数据:\n");
    for(i=0; i<num; i++)
    {
        scanf("%d",&l->data[i]);
    }
    l->len=num;
}
void mergelist(Seqlist *la,Seqlist *lb,Seqlist *lc)
{

    int i=0,j=0,k=0;
    lc->len=la->len+lb->len;
    while(i<la->len&&j<lb->len)
    {

        if(la->data[i]<lb->data[j])
        {

            lc->data[k]=la->data[i];
            i++;
            k++;
        }
        else
        {

            lc->data[k]=lb->data[j];
            j++;
            k++;
        }
    }
    while(i<la->len)
    {
        lc->data[k]=la->data[i];
        i++;
        k++;

    }
    while(j<lb->len)
    {
        lc->data[k]=lb->data[j];
        j++;
        k++;
    }
}
void printlist(Seqlist *l)
{
    int i;
    printf("打印顺序表:\n");
    for(i=0; i<l->len; i++)
    {
        printf("%d ",l->data[i]);
    }
}
int main()
{
    Seqlist la,lb,lc;
    int n,m;
    la.len=0;
    lb.len=0;
    lc.len=0;
    printf("请输入顺序表A的长度:\n");
    scanf("%d",&n);
    createlist(&la,n);
    printlist(&la);
    printf("\n请输入顺序表B的长度:\n");
    scanf("%d",&m);
    createlist(&lb,m);
    printlist(&lb);
    mergelist(&la,&lb,&lc);
    printlist(&lc);
}


两个单调不减的顺序表的的合并