有关顺序表的问题
#include <stdio.h>#include <stdlib.h>
#define LISTSIZE 50
typedef char DateType;
typedef struct
{
DateType* elem;
int length;
int listsize;
}SeqList;
void InitList(SeqList* L)
{
L->elem=(DateType *)malloc((LISTSIZE)*sizeof(DateType));
L->length=0;
L->listsize=LISTSIZE;
printf("\n\t\t\t线性表初始化成功");
}
void InsertList(SeqList* L,int i,DateType x)
{
int j;
if(i<1||i>L->length+1)
{
printf("\n\t\t\t插入位置不合法");
}
else
{
for(j=L->length;j>=i;j--)
{
L->elem[j+1]=L->elem[j];
}
L->elem[i]=x;
L->length++;
printf("\n\t\t\t插入成功!");
}
}
void showList(SeqList* L)
{
int i;
if(L->length==0)
{
printf("\n\t\t\t顺序表为空!");
}
else
{
printf("\n\t\t\t");
for(i=0;i<L->length;i++)
{
printf("%c",L->elem[i]);
}
}
}
void main()
{
int k,i,j=1;
DateType x;
SeqList L;
while(j)
{
printf("\n");
printf("\n");
printf("\n");
printf("\n");
printf("\n\t\t\t********************************");
printf("\n\t\t\t*** 1---初始化顺序表 ***");
printf("\n\t\t\t*** 2---插入元素 ***");
printf("\n\t\t\t*** 3---显示顺序表 ***");
printf("\n\t\t\t*** 0---退出 ***");
printf("\n\t\t\t********************************\n");
printf("\n\t\t\t请选择菜单序号:");
scanf("%d",&k);getchar();
if(k==1)
{
InitList(&L);
}
else if(k==2)
{
printf("\n\t\t\t请输入元素位置与值,格式如(i,x)");
scanf("%d,%c",&i,&x);
InsertList(&L,i,x);
}
else if(k==3)
{
showList(&L);
}
else if(k==0)
{
j=0;
printf("\t\t\t程序结束!\n");
}
}
}
请问这个代码错在哪里呢?为什么我插入数据时显示不出来呢?谢谢指点