有10个学生,每个学生的数据包括学号、姓名、3门课程的成绩,从键盘输人10个学生数据,要求输出3门课程总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课程成绩、平均分数)。
原创
©著作权归作者所有:来自51CTO博客作者wx58c6a41d9524d的原创作品,请联系作者获取转载授权,否则将追究法律责任
有10个学生,每个学生的数据包括学号、姓名、3门课程的成绩,从键盘输人10个学生数据,要求输出3门课程总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课程成绩、平均分数)。
#include <stdio.h>
#define NAMLEN 20
#define STUCNT 10
typedef struct student_t{
int num;
char name[NAMLEN];
int score[3];
} student;
int main(){
student students[STUCNT];
int maxi = 0, maxsum = 0;
double aver_0 = 0, aver_1 = 0, aver_2 = 0;
for (int i = 0; i < STUCNT; i++){
scanf("%d%s%d%d%d", &students[i].num, students[i].name, &students[i].score[0], &students[i].score[1], &students[i].score[2]);
int sum = students[i].score[0] + students[i].score[1] + students[i].score[2];
if (sum > maxsum){
maxsum = sum;
maxi = i;
}
aver_0 += students[i].score[0];
aver_1 += students[i].score[1];
aver_2 += students[i].score[2];
}
aver_0 /= STUCNT;
aver_1 /= STUCNT;
aver_2 /= STUCNT;
printf("%lf %lf %lf\n", aver_0, aver_1, aver_2);
printf("%d %s %d %d %d %lf\n", students[maxi].num, students[maxi].name, students[maxi].score[0], students[maxi].score[1], students[maxi].score[2],
(students[maxi].score[0] + students[maxi].score[1] + students[maxi].score[2]) / 3.0);
return 0;
}
运行截图: