有n个结构体变量,内含学生学号、姓名和3门课程成绩 要求求输出平均成绩最高的学生信息
代码:
#include <stdio.h>
#define N 3
struct Student{
int num;
char name[20];
float score[3];
float aver;
};
void input(struct Student stu[]){
int i;
printf("请输入各个学生的信息:学号、姓名、3门课成绩:\n");
for(i=0;i<N;i++){
scanf("%d %s %f %f %f",&stu[i].num, &stu[i].name, &stu[i].score[0], &stu[i].score[1], &stu[i].score[2]);
stu[i].aver = (stu[i].score[0]+stu[i].score[1]+stu[i].score[2])/3.0;
}
}
struct Student max(struct Student stu[]){
int i,m=0;
for(i=0;i<N;i++){
if(stu[i].aver>stu[m].aver){
m=i;
}
}
return stu[m];
};
void print(struct Student stud){
printf("\n成绩最高的学生是:\n");
printf("学号:%d\n姓名:%s\n三门课成绩:%5.1f,%5.1f,%5.1f\n平均成绩:%6.2f", stud.num, stud.name,stud.score[0],stud.score[1],stud.score[2],stud.aver);
}
int main() {
struct Student stu[N],*p=stu;
input(p);
print(max(p));
return 0;
}
结果:
请输入各个学生的信息:学号、姓名、3门课成绩:
01 li 78 89 98
02 wang 78.5 87 69
03 sun 88 76.5 89
成绩最高的学生是:
学号:1
姓名:li
三门课成绩: 78.0, 89.0, 98.0
平均成绩: 88.33
Process returned 0 (0x0) execution time : 54.884 s
Press any key to continue.