请看看这是哪里错了啊
将学生档案信息存放在顺序表List []中,实现学生档案信息顺序表的基本操作,包括:初始化顺序表,在表中插入元素、删除元素。基本要求:
初始化顺序表;
程序具有顺序表插入、删除和显示功能,可根据用户需要连续操作(插入、删除位置及要插入元素数值均从键盘输入);
任一操作结束后将顺序表中的内容输出;
程序能检测并提示发生上溢或下溢错误。
可由用户选择退出程序。
这是我写的程序 这是哪里错了啊?
#include<stdio.h>
#define MAXLEN 50
#include <malloc.h>
typedef struct
{ char name[30];
int number;
char sex[3];
char nativeplace[50];
} datatype;
typedef struct
{
datatype List[MAXLEN];
int size;
} Seqlist;
Seqlist *L;
void initiq(Seqlist *la,int n )
{
int i;
L=(Seqlist*)malloc(sizeof(Seqlist)*n);//为L创建内存
for(i=0;i<n;i++)
{
printf("请输入第%d个学生 姓名 学号 性别 籍贯 \n",i+1);
scanf("%s%d%s%s",L->List[i].name,&L->List[i].number,L->List[i].sex,L->List[i].nativeplace);
}
for(i=0;i<L->size-1;i++)
printf("%s%d%s%s",L->List[i].name,L->List[i].number,L->List[i].sex,L->List[i].nativeplace);
}
int insertq(Seqlist *la, int i ,datatype e)
{
int j;
if(L->size>=MAXLEN)
{
printf("ERROR");
return 0;
}
if (i <1 || i >L->size+1)
{
printf("ERROR");
return 0;
}
for (j=L->size-1;j>=j-1;j--)
L->List[ j+1]=L->List[ j ];
L->List[ i -1]=e;
L->size++;
return 1;
for (j=0;j<L->size-1;j++)
printf("%s%d%s%s",L->List[i].name,L->List[i].number,L->List[i].sex,L->List[i].nativeplace);
}
int deleteq(Seqlist *la,int i, datatype *y )
{
int j;
if(L->size<=0)
{
printf("ERROR");
return 0;
}
else if (i <1 || i >L->size)
{
printf("ERROR");
return 0;
}
else
{
*y=L->List[i-1];
for ( j=i; j<=L->size-1;j ++)
L->List[ j -1]=L->List[ j ];
L->size--;
for (j=0;j<L->size-1;j++)
printf("%s%d%s%s",L->List[i].name,L->List[i].number,L->List[i].sex,L->List[i].nativeplace);
return 1; }
}
void main ()
{
int n,m,k; char ch;
printf("输入学生个数");
scanf("%d",&n);
initiq( L, n );
printf("input 1(插入学生信息)or 0(删除学生信息)");
scanf("%d",&m);
while (1)
{
if(m==1)
{
printf("输入插入元素的位置");
scanf("%d",&k);
datatype e;
printf("输入插入学生的姓名 学号 性别 籍贯 ");
scanf("%s%d%s%s",e.name,&e.number,e.sex,e.nativeplace);
insertq(Seqlist *L, int k ,datatype e);
}
else
{
printf("输入删除元素的位置");
scanf("%d",&k);
int deleteq(Seqlist *L,int k, datatype *y );
}
printf("\n是否继续? (y/n):");
scanf("%s",&ch);
if(ch=='Y'||'y') continue;
else break;
}
}