有10个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入10个学生的数据,要求打印出3门课的平均成绩,以及平均成绩最高的学生的数据(包括学号、姓名、3门课成绩、平均分数)。用C语言
时间: 2023-11-28 10:47:18 浏览: 123
C语言程序设计-有一个一维数组score,内放10个学生的成绩,用一个函数来求平均成绩;
5星 · 资源好评率100%
以下是一个用 C 语言实现的代码示例:
```c
#include <stdio.h>
#include <string.h>
#define MAX_STUDENTS 10
#define MAX_NAME_LEN 20
struct Student {
int id;
char name[MAX_NAME_LEN];
double score1, score2, score3;
double avg_score;
};
int main() {
struct Student students[MAX_STUDENTS];
double avg_score1 = 0, avg_score2 = 0, avg_score3 = 0; // 三门课程的平均分数
double max_avg_score = 0; // 最高平均分数
int max_avg_score_index = -1; // 最高平均分数的学生在数组中的下标
// 输入每个学生的数据
for (int i = 0; i < MAX_STUDENTS; i++) {
printf("请输入第%d个学生的数据:\n", i + 1);
scanf("%d %s %lf %lf %lf", &students[i].id, students[i].name, &students[i].score1, &students[i].score2, &students[i].score3);
students[i].avg_score = (students[i].score1 + students[i].score2 + students[i].score3) / 3;
avg_score1 += students[i].score1;
avg_score2 += students[i].score2;
avg_score3 += students[i].score3;
if (students[i].avg_score > max_avg_score) {
max_avg_score = students[i].avg_score;
max_avg_score_index = i;
}
}
// 计算三门课程的平均分数
avg_score1 /= MAX_STUDENTS;
avg_score2 /= MAX_STUDENTS;
avg_score3 /= MAX_STUDENTS;
// 输出三门课程的平均分数
printf("三门课程的平均分数分别为:%.2lf %.2lf %.2lf\n", avg_score1, avg_score2, avg_score3);
// 输出平均分数最高的学生的数据
if (max_avg_score_index != -1) {
printf("平均分数最高的学生是:\n");
printf("学号:%d\n", students[max_avg_score_index].id);
printf("姓名:%s\n", students[max_avg_score_index].name);
printf("三门课程的成绩:%.2lf %.2lf %.2lf\n", students[max_avg_score_index].score1, students[max_avg_score_index].score2, students[max_avg_score_index].score3);
printf("平均分数:%.2lf\n", students[max_avg_score_index].avg_score);
}
return 0;
}
```
运行该程序后,可以输入每个学生的数据,然后输出三门课程的平均分数以及平均分数最高的学生的数据。
阅读全文