一个班上有30名学生,每个学生的数据作为一个记录,每个记录包括学号、姓名、三门课程的成绩和三门课程平均成绩。从键盘输入学生的学号、姓名及三门课的成绩。要求打印三门课程平均成绩最高分的学生记录(写c语言代码)
时间: 2024-09-11 10:10:00 浏览: 186
在C语言中,你可以定义一个结构体来存储学生的数据,包括学号、姓名、三门课程的成绩和平均成绩。然后通过输入每个学生的数据,计算平均成绩,并找出平均成绩最高的学生记录进行打印。以下是一个简单的C语言代码实现:
```c
#include <stdio.h>
typedef struct {
int student_id;
char name[50];
float course1;
float course2;
float course3;
float average;
} Student;
int main() {
Student students[30]; // 假设班上最多有30名学生
int n;
printf("请输入学生数量(最多30名学生):");
scanf("%d", &n);
if (n > 30) {
n = 30;
}
// 输入每个学生的数据
for (int i = 0; i < n; i++) {
printf("请输入第%d个学生的学号、姓名、三门课成绩:\n", i + 1);
scanf("%d %s %f %f %f", &students[i].student_id, students[i].name, &students[i].course1, &students[i].course2, &students[i].course3);
students[i].average = (students[i].course1 + students[i].course2 + students[i].course3) / 3; // 计算平均成绩
}
// 查找平均成绩最高的学生
int max_index = 0;
for (int i = 1; i < n; i++) {
if (students[i].average > students[max_index].average) {
max_index = i;
}
}
// 打印平均成绩最高的学生记录
printf("\n平均成绩最高的学生记录是:\n");
printf("学号:%d\n", students[max_index].student_id);
printf("姓名:%s\n", students[max_index].name);
printf("课程1成绩:%.2f\n", students[max_index].course1);
printf("课程2成绩:%.2f\n", students[max_index].course2);
printf("课程3成绩:%.2f\n", students[max_index].course3);
printf("平均成绩:%.2f\n", students[max_index].average);
return 0;
}
```
在这段代码中,我们首先定义了一个`Student`结构体来存储学生的相关信息。然后通过`scanf`函数从键盘输入每个学生的数据,并计算平均成绩。接着通过一个循环找出平均成绩最高的学生记录,并使用`printf`函数打印出来。
阅读全文