学生成绩管理系统,出现很多错误,请大神指教
#include<stdio.h>void menu_student(void);
void new_student(void);
void search_student(void);
void update_student(void);
void delete_student(void);
void output_student(void);
void sort_student(void);
struct student{
int num;
char name[10];
int computer,english,math;
double average;
};
int main()
{
struct student st[50];
menu();
int x;
scanf("%d",&x);
switch(x){
case 1:new_student();break;
case 2:search_student();break;
case 3:update_student();break;
case 4:delete_student();break;
case 5:output_student();break;
case 6:sort_student();break;
default:printf("输入有误\n");
}
return 0;
}
void menu(void){
printf("**********欢迎进入学生成绩管理系统**********\n");
printf(" 菜单 \n");
printf("新建学生信息——————1\n");
printf("查询学生信息——————2\n");
printf("修改学生信息——————3\n");
printf("删除学生信息——————4\n");
printf("输出学生信息——————5\n");
printf("排序——————————6\n");
printf("请输入您的选择:\n");
}
void new_student(void){
int i,n;
printf("输入学生人数n:\n");
scanf("%d",&n);
for(i=1;i<=n;i++){
printf("学号:\n");
scanf("%d",&st[i].num);
printf("姓名:\n");
scanf("%s",st[i].name);
printf("计算机 英语 数学\n");
scanf("%lf%lf%lf",&st[i].computer,&st[i].english,&st[i].math);
st[i].average=(st[i].computer+st[i].english+st[i].math)/3.0;
printf("%g",st[i].average);
}
}
void search_student(void){
int a,i;
printf("输入学生学号:\n");
scanf("%d",&a);
for(i=1;i<=n;i++){
if(a==st[i].num){
printf("学号\t姓名\t计算机\t英语\t数学\t平均分\n");
printf("%d%s%d%d%d%lf",st[i].num,st[i].name,st[i].computer,st[i].english,st[i].math,st[i].average);
}
else
printf("未找到该同学信息\n");
}
}
void update_student(void){
int a,i;
printf("请输入需要修改的学生学号\n");
scanf("%d",&a);
for(i=0;i<n;i++){
if(a==st[i].num){
printf("学号\t姓名\t计算机\t英语\t数学\t平均分\n");
printf("%d%s%d%d%d%lf",st[i].num,st[i].name,st[i].computer,st[i].english,st[i].math,st[i].average);
printf("请重新输入学生的学号 姓名:\n");
scanf("%d%s",&st[i].num,st[i].name);
printf("请重新输入学生成绩:\n");
printf("计算机\t英语\t数学\n");
scanf("%d%d%d",&st[i].computer,&st[i].english,&st[i].math);
printf("修改成功\n");
break;
}
else
printf("请确认该学生是否为本班学生!\n");
}
}
void delete_student(void){
int a,i,c;
char m;
printf("请输入学生学号\n");
scanf("%d",&a);
for(i=0;i<n;i++){
if(a==st[i].num){
printf("学号\t姓名\t计算机\t英语\t数学\t平均分\n");
printf("%d%s%d%d%d%lf",st[i].num,st[i].name,st[i].computer,st[i].english,st[i].math,st[i].average);
c=i;
break;
}
else
printf("未找到该学生信息\n");
}
printf("是否删除该同学信息(y/n)\n");
scanf("%s",&m);
if(m=='y'){
for(i=c;i<n-1;i++){
st[i]=st[i+1];
n=n-1;
}
printf("删除成功!\n");
}
else
printf("删除失败!\n");
}
void output_student(void){
int i;
printf("输出学生信息!\n");
for(i=0;i<n;i++){
printf("%d%s%d%d%d%lf",st[i].num,st[i].name,st[i].computer,st[i].english,st[i].math,st[i].average);
}
}
void sort_student(void){
int i,j;
double temp[50];
for(i=0;i<n;i++){
for(j=0;j<n-i-1;j++){
if(st[j].average>st[j+1].average){
temp[i]=st[j+1].average;
st[j+1].average=st[j].average;
st[j].average=temp[i];
}
}
}
for(i=0;i<n;i++){
printf("%d%s%d%d%d%lf",st[i].num,st[i].name,st[i].computer,st[i].english,st[i].math,st[i].average);
}
}