回复 28楼 wp231957
#include<stdio.h>
void inquiry(struct student *p);
void score_max(struct student *p);
void score_average(struct student *p);
void score_alter(struct student *p);
void score_delete(struct student *p);
void score_count(struct student *p);
struct student
{
char name[10];
int stu_id;
int score[3];
char sex;
int age;
}a[3]={{"li ming",123456,a[0].score[0]=60,a[0].score[1]=67,a[0].score[2]=80,a[0].sex='w',a[0].age=10},
{"wang ming",123457,a[1].score[0]=70,a[1].score[1]=90,a[1].score[2]=80,a[1].sex='m',a[1].age=12},
{"li fei",123458,a[2].score[0]=30,a[2].score[1]=60,a[2].score[2]=100,a[2].sex='w',a[2].age=15}};;
int main()
{
struct student *p;
p=a;
int xuanze;
printf("菜单\n\
0 退出 :\n\
1 请输入学号查询学生的信息:\n\
2 求某个学生的最高成绩: \n\
3 求某个学生的平均成绩: \n\
4 修改某个学生的第n门课程的成绩: \n\
5 删除某个学生的成绩: \n\
6 统计某个学生不及格课程的门数: \n");
printf("请输入你的选择:0-6:");
scanf("%d",&xuanze);
switch(xuanze)
{
case 0:return 0;
case 1:inquiry(p);break;
case 2:score_max(p);break;
case 3:score_average(p);break;
/* case 4:score_alter(p);break;
case 5:score_delete(p);break;
case 6:score_count(p);break;*/
default:printf("enter date error!:\n");
return 0;
}
return 0;
}
void inquiry(struct student *p)
{
int xh;
printf("请输入学号:\n");
scanf("%d",&xh);
while(p!=NULL)
{
if((*p).stu_id==xh)
{
printf("姓名为:%s\n 学号为%d\n 成绩为%d %d %d\n 性别为%c\n 年龄为%d\n ",
(*p).name,(*p).stu_id,(*p).score[0],(*p).score[1],(*p).score[2],(*p).sex,(*p).age);
break;
}
++p;//相当于学生
}
}
void score_max(struct student *p)
{
int xh,max=(*p).score[0],t;
printf("请输入要查找成绩最大的学生的学号:\n");
scanf("%d",&xh);
while(p!=NULL)
{
if((*p).stu_id==xh)
{
for(int i=1;i<3;i++)
{
if((*p).score[i]>max)
{
t=max;
max=(*p).score[i];
(*p).score[i]=t;
}
}
printf("%d",max);
break;
}
p++;
}
}
void score_average(struct student *p)
{
int xh,sum=0;
float aver=0;
printf("请输入你要算平均值的学生的学号:\n");
scanf("%d",&xh);
while(p!=NULL)
{
if((*p).stu_id==xh)
{
for(int i=0;i<3;i++)
{
sum=sum+(*p).score[i];
}
aver=sum/3.0;
printf("%f",sum);
break;
}
p++;
}
}
谢谢你。