一个关羽线性表存储的问题
#define OK 1#define ERROR 0
#define TURE 1
#define FALSE 0
#define INFEASIBLE -1
#define OVERFLOW -2
#define LIST_INIT_SIZE 100
#define LISTINCREMENT 10
typedef struct link
{
char name[20];
char yuanxi[20];
char xingbie[20];
float data;
}link;
typedef struct
{
link *elem;
int length;
int listsize;
}Sqlist;
Initlist_Sq(Sqlist *L)
{
L->elem=(link*)malloc(LIST_INIT_SIZE*sizeof(link));
if(!L->elem)
{
printf("申请失败!");
exit(0);
}
L->length=0;
L->listsize=LIST_INIT_SIZE;
return OK;
}
Inputdata(Sqlist *L)
{
int n,i;
printf("参赛人数:");
scanf("%d",&n);
printf("输入成绩\n");
n=L->length+n;
if(L->length<LIST_INIT_SIZE)
{
if(n<=LIST_INIT_SIZE)
{
for(;L->length<n;L->length++)
{
scanf("%d",&L->elem[L->length]);
}
}
else
{
i=LIST_INIT_SIZE;
while(n>=i)
{
L->elem=(link*)malloc(LISTINCREMENT*sizeof(link));
i=i+LISTINCREMENT;
L->listsize=L->listsize+LISTINCREMENT;
}
for(;L->length<n;L->length++)
{
scanf("",&L->elem[L->length]);
}
}
}
else
{
i=LIST_INIT_SIZE;
while(n<=i)
{
L->elem=(link*)malloc(LISTINCREMENT*sizeof(link));
i=i+LISTINCREMENT;
L->listsize=L->listsize+LISTINCREMENT;
}
for(;L->length<n;L->length++)
{
scanf("%d",&L->elem[L->length]);
}
}
}
Outputdata(Sqlist *L)
{
int i;
for(i=0;i<L->length;i++)
{
printf("%d\n",L->elem[i]);
}
}
void wushi()
{
Sqlist L;
int i;
printf(" 50米比赛成绩\n");
link *head=NULL;
Initlist_Sq(&L) ;
Inputdata(&L);
Outputdata(&L);
}
上面的两个结构体是否有啥错误,程序运行完后输入的时候无法达到我要的效果