求大神看看这段代码哪错了,谢谢
#include<stdio.h>#include<stdlib.h>
#define N 5
//学生信息
struct student
{
int no;//学号
char name[20];//姓名
int score;//成绩
};
typedef struct student elemType;
typedef struct
{
elemType *elem;//首地址
int length;//长度
int listSize;//容量
}sqList;//学生信息表
int menu() //菜单
{
int select;
do
{
system("cls");
printf("\t********欢迎使用学生成绩管理系统********\n");
printf("\t*[1] 输入所有学生信息 *\n");//唐密
printf("\t*[2] 输出所有学生成绩 *\n");//唐密
printf("\t*[3] 按学号查找某个学生信息 *\n");//宋雨佳
printf("\t*[4] 按姓名查找某个学生信息 *\n");//鹏鹏
printf("\t*[5] 按学号对学生排序 *\n");//高锋
printf("\t*[6] 按总成绩对学生排序 *\n");//高锋
printf("\t*[7] 按姓名修改某个学生信息 *\n");//杜彬
printf("\t*[8] 按学号修改某个学生信息 *\n");//杜彬
printf("\t*[9] 按姓名删除某个学生信息 *\n");//鹏鹏
printf("\t*[10] 按学号删除某个学生信息 *\n");//吴春荣
printf("\t*[0] 退出程序 *\n");
printf("\t****************************************\n");
printf("\t>>>请选择相应的功能[0-10]:");
scanf("%d",&select);
}while(select<0||select>10);
return select;
}
//初始化分配空间:为线性表L分配容量为size的空间
//返回1:成功,0:失败
int InitList(sqList *L,int size)
{
L->elem=(elemType *)malloc(size*sizeof(elemType));
if(L->elem==NULL)return 0;
L->length=0;
L->listSize=size;
return 1;
}
//输入一个学生的信息
elemType inputStudent()
{
elemType stu;
printf("\t>>>学号:");
scanf("%d",&stu.no);
printf("\t>>>姓名:");
fflush(stdin);
gets(stu.name);
printf("\t>>>成绩:");
scanf("%d",&stu.score);
return stu;
}
//显示所有学生的信息
void displayAll(sqList list)
{
int i;
printf("\t 学号\t姓名\t成绩\n");
for(i=0;i<list.length;i++)
{
printf("\t %d\t%s\t%d\n",list.elem[i].no,list.elem[i].name,list.elem[i].score);
}
}
int DelectList(sqList *L,int i,elemType *e)
{
int j;
//检查删除位置是否正确
if(i<1||i>L->length)return 0;
//1.保存待删除的元素
*e=L->elem[i-1];
//2.从第i+1元素到第n个元素,依次前移
for(j=i;j<L->length;j++)
{
L->elem[j-1]=L->elem[j];
}
//3.长度减1
L->length--;
return 1;
}
//查找:在线性表L中查找学号为num的元素,返回:0-失败,成功返回其位序
int LocateList(sqList *L,int num)
{
int i;
for(i=0;;i++)
{
if(L->elem[i].no==num){return i+1;break;}
else return 0;
}
}
//主函数
int main()
{
sqList list;//学生信息表
elemType stu,e;//一个学生信息
int i,j;
char ch;
InitList(&list,30);//初始化学生信息表
while(1)
{
i=menu();
switch(i){
case 10://按学号删除某个学生信息
int z;
printf("请输入要删除的学号:\n");
scanf("%d",&z);//输入学号
i=LocateList(&list,z);
if(i<0)printf("无此学生!!\n");
j=DelectList(&list,i,&stu);
if(j>0)
{
printf("\t 删除成功!\n");
} //成功:显示删除的学生信息
else
{
printf("\t 删除失败!无此学生\n");
}
system("pause");
break;
case 0://退出程序
printf("\t>>>亲,您确定要退出程序吗!?(Y/N):");
fflush(stdin);//清除缓存
ch=getchar();
if(ch=='Y'||ch=='y')
{
return 0;//exit(0);
}
break;
}
}
return 0;
}