#include<stdio.h>
#define N 3
struct student {
char num[10]; // 学号
char name[10]; // 姓名
float cj[N]; // 3门课程成绩
float avg; // 平均分
};
int main() {
struct student stu[N], max[N], temp;
int i, j, k;
float sum = 0.0; // 用于计算总平均分
// 输入学生数据
for(i = 0; i < N; i++) {
printf("请输入第%d个学生的学号、姓名、3门课程的成绩:\n", i + 1);
scanf("%s %s %f %f %f", stu[i].num, stu[i].name, &stu[i].cj[0], &stu[i].cj[1], &stu[i].cj[2]);
// 计算平均分
stu[i].avg = (stu[i].cj[0] + stu[i].cj[1] + stu[i].cj[2]) / N;
sum += stu[i].avg; // 累加平均分
max[i] = stu[i]; // 初始化max数组
}
// 计算总平均分
float total_avg = sum / N;
printf("3门课程的总平均成绩是:%f\n", total_avg);
// 比较成绩,找出最高分的学生
for(i = 0; i < N - 1; i++) {
k = i;
for(j = i + 1; j < N; j++) {
if(max[j].avg > max[k].avg) {
k = j;
}
}
temp = max[k];
max[k] = max[i];
max[i] = temp;
}
// 输出最高分学生的数据
printf("最高分的学生的数据:\n");
printf("学号:%s 姓名:%s 3门课程成绩:%f %f %f 平均分数:%f\n",
max[0].num, max[0].name, max[0].cj[0], max[0].cj[1], max[0].cj[2], max[0].avg);
return 0;
}
标签:cj,avg,max,学生,stu,课程,成绩,平均分
From: https://blog.csdn.net/weixin_72773371/article/details/144539510