有10个学生,每个学生的数据包括学号、姓名、3门课程的成绩,从键盘输人 10个学生数据,要求输出 3门课程总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课程成绩、平均分数)。 c语言
时间: 2025-06-14 17:16:11 浏览: 11
在C语言中,你可以通过结构体来存储每个学生的信息,然后使用循环遍历输入的数据并计算总平均成绩。对于找到最高分的学生,你需要维护一个全局变量来跟踪最高分及其对应的学生信息。这里是一个简单的示例代码:
```c
#include <stdio.h>
#include <string.h>
// 定义学生结构体
typedef struct {
int id;
char name[50];
float course1, course2, course3;
} Student;
// 计算平均分
float calculate_average(Student student) {
return (student.course1 + student.course2 + student.course3) / 3.0;
}
int main() {
Student students[10];
int i = 0;
// 输入10个学生数据
for (i = 0; i < 10; i++) {
printf("请输入第%d个学生的信息(学号, 姓名, 三门课程成绩):\n", i + 1);
scanf("%d", &students[i].id);
fgets(students[i].name, sizeof(students[i].name), stdin); // 防止换行符
scanf("%f %f %f", &students[i].course1, &students[i].course2, &students[i].course3);
// 如果这是第一个学生或当前学生的平均分更高,更新最高分
if (i == 0 || calculate_average(students[i]) > max_average) {
max_average = calculate_average(students[i]);
max_student = students[i]; // 存储最高分学生信息
}
}
// 输出结果
printf("3门课程总平均成绩: %.2f\n", max_average);
printf("最高分学生信息:\n");
printf("学号:%d, 姓名:%s\n", max_student.id, max_student.name);
printf("课程成绩:%.2f, %.2f, %.2f\n", max_student.course1, max_student.course2, max_student.course3);
return 0;
}
```
在这个程序中,`max_average` 和 `max_student` 分别用于记录当前最高平均分和对应的学生成绩。注意,`fgets` 被用于防止用户输入的换行符直接存入名字字段。
阅读全文
相关推荐


















