一道关于C语言结构体数组问题,

2024-12-23 08:33:54
推荐回答(3个)
回答1:

#include
#include

struct student
{
char id[20];
char subject[20];
char name[20];
float score[3];
float total;
float average;
} stud[100];

int main()
{
int i,max=0,n,m;
printf("please input the number of student:\n");
scanf("%d",&n);
printf("ID\tsubject\tname\tMT\tEN\tPH\n\n");
for(i=0;i {
printf("this is the %dth student:\n",i+1);
scanf("%s%s%s%f%f%f",stud[i].id,stud[i].subject,stud[i].name,&stud[i].score[0],&stud[i].score[1],&stud[i].score[2]);
stud[i].total=stud[i].score[0]+stud[i].score[1]+stud[i].score[2];
stud[i].average=stud[i].total/3;
}

for(i=0;i {
if(stud[i].total m=i+1;
}
for(i=0;i printf("%s %.1f\n",stud[i].name,stud[i].average);
printf("%s %s %s %.1f %.1f %.1f %.1f\n",stud[m].id,stud[m].subject,stud[m].name,stud[m].score[0],stud[m].score[1],stud[m].score[2],stud[m].average);
return 0;
}

希望能帮到你

回答2:

问题在于你max没有用
加在这里就好了
max=0;
for(i=0;i {
if(max m=i;;
}

回答3:

没错吧,你不是求“输出每个学生三门课的平均成绩,以及平均分最高分学生数据(包括学号、班级、姓名、三门课成绩,平均分)”吗?你觉得哪里错了呢?