user-0 提问: 数据结构顺序表学生信息管理系统

回复:
user: user-1
content: 这个是修改了你的一些明显的错误，能够运行了，你试试 #include <stdio.h> #include <stdlib.h> #include <string.h> #define MAXSIZE 100 #define students elemtype #define error 0 #define ok 1 #define overflow -1 typedef char status; typedef struct { 	int id;  	char name[20]; 	int score;   }elemtype;   typedef struct  { 	elemtype *elem;/*顺序表中的元素*/  	int length;/*顺序表中的长度*/   }Sqlist;                                      status Initlist(Sqlist *L)  /*初始化顺序表函数，建立一个空表*/   { 	L->elem=(elemtype*)malloc(MAXSIZE*sizeof(elemtype)); 	if(!L->elem) 		exit(overflow); 	L->length=0; 	return ok; } status Getelem(Sqlist L,int i,elemtype e) /*顺序表的取值*/  { 	if(i<1||i>L.length) 		return error; 	e=L.elem[i-1]; 	return ok; }  int Locateelem(Sqlist L,elemtype e)/*顺序表的查找*/ { 	int i; 	for(i=0;i<L.length;i++) 	{ 		if(L.elem[i].id==e.id) 			return i+1; 	} 	return 0; } status Listinsert(Sqlist L,int i,elemtype e)/*顺序表的插入*/  { 	int j; 	if((i<1)||(i>L.length+1)) 		return error; 	if(L.length==MAXSIZE) 		return error; 	for(j=L.length-1;j>=i-1;j--) 	{ 		L.elem[j+1]=L.elem[j]; 	} 	L.elem[i-1]=e; 	++L.length; 	return ok; } status Listdelete(Sqlist L,int i)/*顺序表的删除*/  { 	int j; 	if((i<1)||(i>L.length)) 		return error; 	for(j=i;j<=L.length-1;j++) 		L.elem[j-1]=L.elem[j]; 	L.length--; 	return ok;  }  void printflist(Sqlist L)/*把顺序表L中的内容输出出来*/  { 	int i; 	printf("目前顺序表中的学生信息为:\n"); 	for(i=0;i<L.length;i++) 	{ 	 	printf("id；%d name；%s score；%d\n",L.elem[i].id,L.elem[i].name,L.elem[i].score); 	}  	printf("\n"); } void Insert(Sqlist L)/*新插入一个内容的插入函数使用了Listinsert函数*/  { 	int local; 	elemtype e; 	int news; 	printf("请输入要插入的地址及内容\n"); 	printf("地址；"); 	scanf("%d",&local); 	printf("id:"); 	scanf("%d",&e.id); /*输入插入的id号*/  	printf("name:"); 	scanf("%s",&e.name); /*输入插入的姓名*/  	printf("score:"); 	scanf("%d",&e.score); /*输入插入的成绩*/  	news=Listinsert(L,local,e); 	printf("插入成功！");  	printflist(L); } void deleted(Sqlist L)/*删除顺序表中的内容的函数使用了 Listdelete函数*/ { 	int local; 	int news; 	printf("请输入你要删除的地址:"); 	scanf("%d",&local); 	news=Listdelete(L,local); 	if(news) 	{ 		printf("删除成功！\n"); 		printflist(L); 	} 	else 		printf("删除失败！\n");  	printf("\n"); } void search(Sqlist L)/*通过输入id号码来查找顺序表中的学生的全部信息使用了Locateelem函数*/  { 	int news; 	elemtype e; 	printf("请输入你要查找的id学号；"); 	scanf("%d",&e.id); 	news=Locateelem(L,e); 	if(news)  		printf("查找成功！该元素位置为：%d\n",news); 	else 		printf("未找到该元素！\n"); 	printf("\n"); } int main()/*主函数*/  { 	Sqlist a;/*定义了一个新的顺序表*/  	int m,n,t; 	Initlist(&a);/*让这个顺序表a为空表*/  	printf("请输入要录入信息的学生的数量n:"); 	scanf("%d",&n); 	elemtype e; 	printf("请输入录入学生的基本信息\n");  	for(t=0;t<n;t++)/*使用for循环来控制第一次要输入程序中的学生信息人数*/  	{ 		printf("请输入第%d个学生的信息:\n",t+1); 		printf("id:"); 		scanf("%d",&a.elem[t].id); /*id信息*/  		printf("name:"); 		scanf("%s",&a.elem[t].name); /*姓名信息*/  		printf("score:"); 		scanf("%d",&a.elem[t].score);/*成绩信息*/  		a.length++; 		printf("\n"); 	} 	printflist(a);/*把输入到程序中的全部学生信息输出出来*/  	while(1)/*恒成立来进行循环*/  	{  		printf("1 is insert\n"); 		printf("2 is delete\n"); 		printf("3 is search\n"); 		printf("4 is break\n"); 		printf("请输入你要执行的操作序号m；"); 		scanf("%d",&m); 		if(4==m) break;/*输入4来让系统结束循环*/  		switch(m)/*选择要操作的内容*/  		{ 			case 1:Insert(a);break; 			case 2:deleted(a);break; 			case 3:search(a);break; 		} 	} }

user: user-1
content: 这个程序什么问题啊