有很多错误求改正
#include <stdio.h> #include <string.h>
struct student
{
int num;
int dianhua[11];
float score[4];
char name[10];
char xingbie;
char dizhi[20];
};
struct student stu[];
{
void luru(struct student stu[]); /* 学生基本信息录入*/
void chaxun(struct student stu[]); /* 按学号查询成绩*/
void shuchu(struct student stu[]); /* 学生基本信息输出*/
void xiugai(struct student stu[]); /* 修改学生信息并输出*/
void pingjun(struct student stu[]); /*求某同学平均成绩*/
void shanchu(struct student stu[]); /* 删除某学生成绩*/
void tianjia(struct student stu[]); /* 添加某学生信息 */
void pjfdy80(struct student stu[]); /* 输出平均分大于80的同学信息*/
void paiming(struct student stu[]); } /* 根据总分排名*/
{ printf(" \\ 1:学生基本信息录入 2:按学号查询成绩 \\ \n");
printf(" \\ 3:学生基本信息输出 4:修改学生信息并输出 \\ \n");
printf(" \\ 5:求某同学平均成绩 6:删除某学生成绩 \\ \n");
printf(" \\ 7:添加某学生信息 8:输出平均分大于80的同学信息 \\ \n");
printf(" \\ 9:根据总分排名 10:退出系统 \\ \n");}
switch(x)
{ case 1: luru(stu); break;
case 2: chaxun(stu); break;
case 3: shuchu(stu); break;
case 4: xiugai(stu); break;
case 5: pingjun(stu); break;
case 6: shanchu(stu); break;
case 7: tianjia(stu); break;
case 8: pjfdy80(stu); break;
case 9: paiming(stu); break;
case 10: exit(0);
}
/*学生成绩录入*/
void luru(struct student stu[])
{
int i,j;
printf("请输入总学生人数:\n");
scanf("%d",&x);
for(i=0;i<x;i++) {
printf("请输入学生1位学号,姓名及分数:\n");
scanf("%d",&stu[i].num);
scanf("%s",stu[i].name);
for(j=0;j<4;j++)
scanf("%f",&stu[i].score[j]); }
printf("你输入的信息是:\n num name score1 score2 score3 score4\n");
for(i=0;i<x;i++)
{
printf("\n %d %s ",stu[i].num,stu[i].name);
for(j=0;j<4;j++)
printf(" %f ",stu[i].score[j]);
printf("\n"); }
}
/*添加某学生信息*/
void tianjia(struct student stu[])
{
int a,b,i;
printf("请输入你要添加第几个学生的信息:\n");
scanf("%d",&b);
printf(" 1:性别 2:地址 3:电话号\n");
printf("你想添加的信息编号:\n");
scanf("%d",&a);
if(a==1)
{ printf("请输入性别: 男或女\n");
getchar();
scanf("%c",&stu[b-1].xingbie);
printf("修改后该学生信息为: \n");
printf("%d\t%s\t%f\t%f\t%f\t%f %c\n",stu[b-1].num,stu[b-1].name,stu[b-1].score[0],stu[b-1].score[1],stu[b-1].score[2],
stu[b-1].score[3],stu[b-1].xingbie);
}
if(a==2)
{ printf("请输入不超过20位地址:\n");
getchar();
gets(stu[b-1].dizhi);
printf("修改后该学生信息为:\n");
printf("%d\t%s\t%f\t%f\t%f\t%f %s\n",stu[b-1].num,stu[b-1].name,stu[b-1].score[0],stu[b-1].score[1],stu[b-1].score[2],
stu[b-1].score[3],stu[b-1].dizhi);
}
if(a==3)
{ printf("请输入:\n");
for(i=0;i<11;i++)
scanf("%d",&stu[b-1].dianhua[i]);
printf("修改后该学生信息为:\n");
printf("%d\t%s\t%f\t%f\t%f\t%f\t ",stu[b-1].num,stu[b-1].name,stu[b-1].score[0],stu[b-1].score[1],stu[b-1].score[2],stu[b-1].score[3]);
for(i=0;i<11;i++)
printf("%d",stu[b-1].dianhua[i]);
printf("\n"); }
}
/*根据总分排名*/
void paiming(struct student stu[])
{
int i,j,z[M]={1},temp2;
float sum[M]={0},temp1;
for(j=0;j<x;j++)
{ for(i=0;i<4;i++)
sum[j]=sum[j]+stu[j].score[i]; }
for(i=1;i<x;i++)
z[i]=z[i-1]+1;
for(i=0;i<x-1;i++)
{ for(j=1;j<x;j++)
{ if(sum[j]>sum[i])
{ temp1=sum[i]; /*交换成绩*/
sum[i]=sum[j];
sum[j]=temp1;
temp2=stu[i].num; /*交换学号*/
stu[i].num=stu[j].num;
stu[j].num=temp2; } }
}
printf("其总分排名是:\n名次 学号 姓名 总分\n");
for(i=0;i<x;i++)
printf("%d %d %s %f\n",z[i],stu[i].num,stu[i].name,sum[i]);
}
/*求某同学的平均成绩*/
void pingjun(struct student stu[])
{
int a,i;
float ave,sum=0;
printf("请输入你要查询第几个同学的平均成绩:\n");
scanf("%d",&a);
for(i=0;i<4;i++)
sum=sum+stu[a-1].score[i];
ave=(float)sum/4;
printf("你要查询的平均成绩是: ");
printf("%f\n",ave);
}