有3个学生,每个学生的数据包括学号、3门课程的成绩,从键盘输入3个学生数据,要求输出3门课程平均分,以及平均分最高的学生的数据(包括学号、3门课程成绩、平均分数)。,c语言
时间: 2023-12-15 15:23:59 浏览: 87
以下是一个实现此功能的 C 语言代码示例:
```c
#include <stdio.h>
struct student {
int id;
float grades[3];
float avg;
};
int main() {
// 读入3个学生的数据
struct student students[3];
for (int i = 0; i < 3; i++) {
printf("请输入第%d个学生的学号和3门课程的成绩:\n", i+1);
scanf("%d %f %f %f", &students[i].id, &students[i].grades[0], &students[i].grades[1], &students[i].grades[2]);
// 计算平均分
students[i].avg = (students[i].grades[0] + students[i].grades[1] + students[i].grades[2]) / 3.0;
}
// 计算3门课程的平均分
float avg_grades[3] = {0.0};
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
avg_grades[i] += students[j].grades[i];
}
avg_grades[i] /= 3.0;
}
printf("3门课程的平均分分别为:%f %f %f\n", avg_grades[0], avg_grades[1], avg_grades[2]);
// 找到平均分最高的学生
int max_index = 0;
for (int i = 1; i < 3; i++) {
if (students[i].avg > students[max_index].avg) {
max_index = i;
}
}
printf("平均分最高的学生的数据为:\n");
printf("学号:%d\n", students[max_index].id);
printf("3门课程成绩:%f %f %f\n", students[max_index].grades[0], students[max_index].grades[1], students[max_index].grades[2]);
printf("平均分:%f\n", students[max_index].avg);
return 0;
}
```
这个程序先定义了一个 `student` 结构体,包含学号、3门课程成绩和平均分。然后通过一个循环读入3个学生的数据,并计算每个学生的平均分。接下来计算3门课程的平均分。最后在一个循环中找到平均分最高的学生,并输出该学生的数据。
阅读全文