程序没有输出
#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
#define MAXSIZE 100
#define ERROR 0
typedef int Elemtype;
typedef struct
{
Elemtype *elem;
int last;
}SeqList;
void InitList(SeqList *L);
void print(SeqList *L);
void mergeList(SeqList *LA,SeqList *LB,SeqList *LC);
void Create(SeqList *L);
int main()
{
SeqList *LA,*LB,*LC;
InitList(&LA);
InitList(&LC);
Create(LA);
InitList(&LB);
Create(LB);
mergeList(LA,LB,LC);
printf("合并前LA:");
print(LA);
printf("合并前LB:");
print(LB);
printf("合并后LC:");
print(LC);
return 0;
}
void InitList(SeqList *L)
{
L->last=0;
L->elem=(int*)malloc(MAXSIZE*sizeof(int));
if(!L->elem){
return ERROR;
}
return L;
}
void Create(SeqList *L)
{
int i=0,x,flag=1;
while(flag)
{
scanf("%d",&x);
if(x>0)
{
L->elem[i]=x;
i++;
}
else
{
L->elem[i]='0';
flag=0;
}
}
L->last=i;
}
void mergeList(SeqList *LA,SeqList *LB,SeqList *LC)
{
int i=0,j=0,k=0;
while(i<LA->last&&j<LB->last)
{
if(LA->elem[i]<LB->elem[j])
{
printf("aaa");
LC->elem[k]=LA->elem[i];
i++;
k++;
}
else if(LA->elem[i]=LB->elem[j])
{
LC->elem[k]=LA->elem[i];
i++;
k++;
j++;
}
else
{
LC->elem[k]=LB->elem[j];
j++;
k++;
}
}
while(i<LA->last)
{
LC->elem[k]=LA->elem[i];
i++;
k++;
}
while(j<LB->last)
{
LC->elem[k]=LB->elem[j];
k++;
j++;
}
LC->last=k+1;
}
void print(SeqList *L)
{
int i;
printf("ok");
for(i=0;i<L->last;i++)
{
printf("%d ",L->elem[i]);
}
}
顺序表可以正常输入但是没有结果的输出
用print试了一下,应该问题是在create(LB)之后,但是把mergeList删掉后还是没有输出,包括printf都没有