插入数据后,顺序表不能输出
#include<stdio.h>#include<windows.h>
#include<malloc.h>
#define MAXSIZE 100
#define ElemType student
typedef struct{ //定义结构体
char sno[9];
char name[9];
char sex;
char major[20];
}student;
typedef struct{
ElemType * elem;
int length;
}Sqlist;
int Insert(Sqlist * L)
{ L->elem=(ElemType *)malloc(MAXSIZE*sizeof(ElemType));
if(L->length==0)
return (-1);
else
L->length=0;
return (1);
}
int show_list(Sqlist * L)
{
int i;
if(L->length==0)
{ printf("列表为空,请输入数据"); }
else
{
for(i=0;i<L->length-1;i++)
{
printf("学号:%s,姓名:%s,性别:%s,专业:%s",L->elem[i].sno,L->elem[i].name,L->elem[i].sex,L->elem[i].major);
}
}
return 1;
}
int Deletelist(Sqlist * L,int pos)
{
int i;
if(pos<1||pos>L->length)
return (-1);
for(i=0;i<L->length;i++)
L->elem[i-1]=L->elem[i];
--(L->length);
return 1;
}
int Initlist(Sqlist * L,int pos, ElemType val)
{
int i;
if(L->length==MAXSIZE)
return (-1);
if(pos<1||pos>L->length)
return (-1);
for(i=L->length-1;i<pos-1;i--)
{ L->elem[i]=L->elem[i-1];
L->elem[pos-1]=val;
}
(L->length)++;
return (1);
}
int menu_select()
{
char c;
do{
system("cls");
printf("\n ***********学生信息管理系统*****************");
printf("\n *** 1、浏览学生信息 ***");
printf("\n *** 2、增加学生信息 ***");
printf("\n *** 3、查找学生信息 ***");
printf("\n *** 4、统计学生信息 ***");
printf("\n *** 5、插入学生信息 ***");
printf("\n *** 6、删除学生信息 ***");
printf("\n *** 0、退出系统 ***");
printf("\n*********************************************\n");
c=getchar();
}while(c<'0'||c>'6');
return(c-'0');
}
void main()
{
int n=0;
Sqlist var_test;
ElemType x;
int num;
int i;
int loc;
while(1)
{switch(menu_select())
{
case 1:
printf("此功能可以实现浏览学生信息\n");
show_list(&var_test);
system("pause");break;
case 2:
printf("此功能可以实现增加学生信息\n");
Insert(&var_test);
system("pause");break;
case 3:
printf("此功能可以实现查找学生信息\n");
system("pause");break;
case 4:
printf("此功能可以实现统计学生信息\n");
system("pause");break;
case 5:
printf("此功能可以实现插入学生信息\n");
printf("\n请输入要插入元素的位置(1-%d):",var_test.length+1);
scanf("%d",&loc);
if(loc<1||loc>var_test.length+1)
{
printf("位置非法");
system("pause");
break;
}
printf("\n请输入要插入元素的个数:");
scanf("%d",&num);
for(i=1;i<=num;i++)
{
printf("\n请输入第%d个元素的位置",i);
printf("\n请输入学号:");
scanf("%s",x.sno);
printf("\n请输入学生姓名");
scanf("%s",x.name);
printf("\n请输入性别:");
scanf("%s",&x.sex);
printf("\n请输入专业:");
scanf("%s",x.major);
Initlist(&var_test,loc,x);
}
system("pause");break;
case 6:
printf("此功能可以实现删除学生信息\n");
Deletelist(&var_test,1);
system("pause");break;
case 0:
printf("谢谢使用本系统/n");
exit(0);
}
}
}
没有任何报错情况!!!!