请问一下哪里出错了,顺便看一下这个学生信息管理系统还有什么问题

#include<stdio.h>
#include<string.h>

int i=0;

struct student
{
char number[10];
char name[10];
char sex[4];
int classes;
int chinese,english,maths;
}stu[50];

struct student temp;


void input()
{int n;
for(n=0;n<50;n++)
{
printf("请输入学生学号(输入0结束)\n");
scanf("%s",&stu[n].number);
if(stu[n].number==0)  {break;}
printf("请输入学生姓名\n");
scanf("%s",stu[n].name);
printf("请输入学生性别\n");
scanf("%s",stu[n].sex);
printf("请输入学生班级\n");
scanf("%d",stu[n].classes);
printf("请输入学生成绩\n");
scanf("%d",&stu[n].chinese);
scanf("%d",&stu[n].english);
scanf("%d",&stu[n].maths);
i=n+1;
}
}

void update()
{int o,j,n;
char a[10];
printf("请输入需要修改信息的学生学号:");
scanf("%s",&a);
for(n=0;n<i;n++)
{
if(strcmp(a,stu[n].number)==0)
{
printf("学号:%s\n",stu[n].number);
printf("姓名:%s\n",stu[n].name);
printf("班级:%d\n",stu[n].classes);
printf("性别:%s\n",stu[n].sex);
printf("语文成绩:%d\n",stu[n].chinese);
printf("英语成绩:%d\n",stu[n].english);
printf("数学成绩:%d\n",stu[n].maths);
o=n;
}
}
printf("*********************************************\n");
printf("1.学号     2.姓名     3.性别     4.班级\n");
printf("5.语文成绩 6.英语成绩 7.数学成绩 8.退出修改\n");
printf("*********************************************\n");
printf("请选择需要进行的操作");
scanf("%d",&j);
switch(j)
{
case 1:printf("请输入该学生的新学号");
       scanf("%s",stu[o].number);
       break;
case 2:printf("请输入该学生的新姓名");
       scanf("%s",stu[o].name);
       break;
case 3:printf("请输入该学生的新性别");
       scanf("%s",stu[o].sex);
       break;
case 4:printf("请输入该学生的新班级");
       scanf("%d",&stu[o].classes);
       break;
case 5:printf("请输入该学生新的语文成绩");
       scanf("%d",&stu[o].chinese);
       break;
case 6:printf("请输入该学生新的英语成绩");
       scanf("%d",&stu[o].english);
       break;
case 7:printf("请输入该学生新的数学成绩");
       scanf("%d",&stu[o].maths);
       break;
case 8:break;
}
}

void deal()
{int n,number1,b,m,index=1;
char num[10];
printf("******************************\n");
printf("1.按学号排序    2.查询\n");
printf("3.统计          4.返回主菜单\n");
printf("******************************\n");
printf("请选择数字");
scanf("%d,&number1");
switch(number1)
{
case 1:
    {printf("排序后结果:\n");}
printf("学号  姓名  性别  班级  语文  英语  数学\n");
for(m=1;m<i;m++)
for(b=0;n<i-m;i++)
if(stu[b].number>stu[b+1].number)
{temp=stu[n];
stu[n]=stu[n=1];
stu[n+1]=temp;}
for(n=0;n<i;n++)
printf("%-9s%-9s%-9s%-9d%-9d%-9d%-9d\n",stu[n].number,stu[n].name,stu[n].sex,stu[n].classes,stu[n].classes,stu[n].english,stu[n].maths);
break;}

case 2:
    { printf("请输入要查询的学生学号");
    scanf("%s",&num);
    for(n=0;n<i;n++)
    {    if(strcmp(num,stu[n].number)==0)
    {printf("学号  姓名  性别  班级  语文  英语  数学\n");
    printf("---------------------------------------\n");
    printf("%-9s%-9s%-9s%-9d%-9d%-9d%-9d",stu[n].number,stu[n].name,stu[n].sex,stu[n].classes,stu[n].chinese,stu[n].english,stu[n].maths);}
    break;}
case 3:
    {int choice,n;
printf("----------------------------------------------\n");
printf("1.统计平均分   2.统计不及格学生信息   3返回\n");
printf("-----------------------------------------------\n");
printf("请选择数字");
scanf("%d,&choice");

     switch(choice)
     {case 1:
     {    printf("所有学生的平均成绩是\n");
          printf("学号   姓名    平均成绩\n");
          printf("---------------------------\n");
            for(n=0;n<i;n++)
             printf("%-9s%-9s%-9d\n",stu[n].number,stu[n].name,((stu[n].chinese+stu[n].english+stu[n].maths)/3));
      break;}
      case 2:
         {printf("有不及格科目的学生是\n");
          printf("学号   姓名  性别  班级  语文  英语  数学\n");
          printf("-----------------------------------------\n");
             for(n=1;n<=i;n++)
               if(stu[n].chinese<60||stu[n].english<60||stu[n].maths<60)
               printf("%-9s%-9s%-9s%-9d%-9d%-9d%-9d%\n",stu[n].number,stu[n].name,stu[n].sex,stu[n].classes,stu[n].chinese,stu[n].english,stu[n].maths);
       break;}
       case 3:
       break;
     }
    break;}
case 4:
    break;
    }


void output()
{int n;
printf("学号       姓名        性别       班级       语文      英语      数学\n");
printf("-------------------------------------------------------------------------\n");
for(n=0;n<i;n++)
printf("%-9s%-9s%-9s%-9d%-9d%-9d%-9d\n",stu[n].number,stu[n].name,stu[n].sex,stu[n].classes,stu[n].chinese,stu[n].english,stu[n].maths);

}

void main(void)
{
int x;
while(true)
{
printf("*******************************\n");
printf("*       学生信息管理系统      *\n");
printf("*-----------------------------*\n");
printf("*       1.读入数据            *\n");
printf("*       2.数据修改            *\n");
printf("*       3.数据处理            *\n");
printf("*       4.数据输出            *\n");
printf("*       5.退出                *\n");
printf("*******************************\n");
printf("请选择编号\n");
scanf("%d",&x);
switch(x)
{case 1:input();break;
case 2:update();break;
case 3:deal();break;
case 4:output();break;
case 5:break;}


}

scanf("%d,&choice");  ----- scanf("%d",&choice);

scanf("%d,&number1");---同上

scanf("%s",&stu[n].number); ---- scanf("%s",stu[n].number);

if(stu[n].number==0)  ---- 拜托,number 是char数组啊

scanf("%d",stu[n].classes); --- classes是整型,要加&

scanf("%s",&a);----a是数组啊,去掉&

printf("%-9s%-9s%-9s%-9d%-9d%-9d%-9d\n" ---这都写的啥啊?

printf("%-%9s-%9s-%-9d%-%9d-%9d-%9d\n"

错误太多,不甚枚举啊。自己先统一一下吧,一会这么写,一会那么写

#include<stdio.h>
#include<string.h>
#include<iostream.h>
void input()
void update()
void deal()
void output()
void main()
{
char x;
while(true)
{
printf("*******************************\n");
printf("*       学生信息管理系统      *\n");
printf("*-----------------------------*\n");
printf("*       1.读入数据            *\n");
printf("*       2.数据修改            *\n");
printf("*       3.数据处理            *\n");
printf("*       4.数据输出            *\n");
printf("*       5.退出                *\n");
printf("*******************************\n");
printf("请选择编号\n");
cin>>x; 
printf("\n");
switch(x)
{case '1':input();break;
case '2':update();break;
case '3':deal();break;
case '4':output();break;
case '5':break;
}
if(x=='5') break;
} 
}




int i;
struct student
{
char number[10];
char name[10];
char sex[4];
char classes;
int chinese,english,maths;
float ave;
}stu[100];


void input()
{char x;
i=0;
while(true)
{
printf("请输入学生学号\n");
scanf("%s",&stu[i].number);
printf("请输入学生姓名\n");
scanf("%s",stu[i].name);
printf("请输入学生性别\n");
scanf("%s",stu[i].sex);
printf("请输入学生班级\n");
scanf("%d",stu[i].classes);
printf("请输入学生语文成绩\n");
scanf("%d",&stu[i].chinese);
printf("请输入学生英语成绩");
scanf("%d",&stu[i].english);
printf("请输入学生数学成绩");
scanf("%d",&stu[i].maths);
stu[i].ave=float((stu[i].chinese+stu[i].english+stu[i].maths)/3.0);
i++;
printf("是否继续输入(Y/N)");cin>>x;
if(x=='n'||x=='N') break;
}
}


void update()
{int n;
char a[10];
printf("请输入需要修改信息的学生学号:");
cin>>a;
for(n=0;n<i;n++)
{
if(strcmp(a,stu[n].number)==0)
{
printf("学号:%s\n",stu[n].number);
printf("姓名:%-8s\n",stu[n].name);
printf("班级:%-8s\n",stu[n].classes);
printf("性别:%-8s\n",stu[n].sex);
printf("语文成绩:%-8d\n",stu[n].chinese);
printf("英语成绩:%-8d\n",stu[n].english);
printf("数学成绩:%-8d\n",stu[n].maths);
printf("%-8.2f",stu[n].ave);
break;
}

}
if(n>=i) printf("没有你所要的记录");
else{
printf("数据修改\n");
printf("新学号:");
scanf("%s",stu[n].number);
printf("新姓名:");
scanf("%s",stu[n].name);
printf("新性别:");
scanf("%s",stu[n].sex);
printf("新班级:");
scanf("%s",stu[n].classes);
printf("语文成绩:");
scanf("%d",stu[n].chinese);
printf("英语成绩:");
scanf("%d",stu[n].english);
printf("数学成绩:");
scanf("%d",stu[n].maths);
stu[n].ave=float((stu[n].chinese+stu[n].english+stu[n].maths)/3.0);
}
}




void px()
{struct student temp;
	int m,n,k;
for(m=0;m<i-1;m++)
{k=m;
 for(n=m+1;n<i;n++)
 if(stu[n].ave>stu[k].ave)
 k=n;
 temp=stu[m];
 stu[m]=stu[k];
 stu[k]=temp;
}
printf("排序结果:\n");
printf("学号    姓名   性别   班级             语文     英语   数学   平均");
printf("--------------------------------------------------------------------");
for(k=0;k<i;k++)
{
printf("%-10s",stu[k].number);
printf("%-10s",stu[k].name);
printf("%-4s",stu[k].sex);
printf("%-15s",stu[k].classes);
printf("%-8d",stu[k].chinese);
printf("%-8d",stu[k].english);
printf("%-8d",stu[k].maths);
printf("%-8.2f",stu[k].ave);
printf("\n");
}





void cx()
{ int n;
char num[10];
printf("请输入要查询的学生学号");
	cin>>num;
	for(n=0;n<i;n++)
{	if(strcmp(num,stu[n].number)==0)
	{
	printf("学号  姓名  性别  班级  语文  英语  数学    平均成绩\n");
	printf("------------------------------------------------------\n");
	printf("%-10s",stu[n].number);
	printf("%-10s",stu[n].name);
	printf("%-4s",stu[n].sex);
	printf("%-15s",stu[n].classes);
	printf("%-8d",stu[n].chinese);
	printf("%-8d",stu[n].english);
	printf("%-8d",stu[n].maths);
	printf("%-8.2f",stu[n].ave);
	break;}
}
if(n>=i)
printf("没有你所要的记录\n");
}



void output()
{int n=0;
printf("学号       姓名        性别       班级       语文      英语      数学     平均分\n");
printf("-----------------------------------------------------------------------------------\n");
while(n<i)
{	printf("%-10s",stu[n].number);
	printf("%-10s",stu[n].name);
	printf("%-4s",stu[n].sex);
	printf("%-15s",stu[n].classes);
	printf("%-8d",stu[n].chinese);
	printf("%-8d",stu[n].english);
	printf("%-8d",stu[n].maths);
	printf("%-8.2f",stu[n].ave);
	n++;
}
}



void deal()
{char x
while(true)
{
printf("******************************\n");
printf("1.按学号排序    2.查询\n");
printf("3.返回主菜单\n");
printf("******************************\n");
printf("请选择数字");
cin>>x;

switch(x)
{
 case'1':px();break;
 case'2':cx();break;
 case'3':break;
}
if(x=='5')break;
}
}



 

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps: 问答会员年卡【8折】购 ,限时加赠IT实体书,即可 享受50次 有问必答服务,了解详情>>>https://t.csdnimg.cn/RW5m