有5个学生,每个学生的数据包括学号、姓名、3门课程的成绩。编写input函数用来输入5个学生的数据记录;编写print函数用来输出每位学生的学号、姓名、3门课程成绩及平均分;编写max_score函数用来寻找平均分最高的学生信息。用C语言
时间: 2024-03-25 11:38:55 浏览: 121
C语言程序设计-输入2个学生3门课的成绩,计算学生成绩平均分,课程平均分和最高分.
5星 · 资源好评率100%
以下是C语言的代码实现:
```c
#include <stdio.h>
#include <string.h>
struct student {
int id;
char name[20];
float score[3];
float avg_score;
};
// 输入5个学生的数据记录
void input(struct student s[]) {
for(int i = 0; i < 5; i++) {
printf("请输入第%d个学生的信息:\n", i + 1);
printf("学号:");
scanf("%d", &s[i].id);
printf("姓名:");
scanf("%s", s[i].name);
printf("3门课程的成绩:");
for(int j = 0; j < 3; j++) {
scanf("%f", &s[i].score[j]);
}
printf("\n");
}
}
// 输出每位学生的学号、姓名、3门课程成绩及平均分
void print(struct student s[]) {
for(int i = 0; i < 5; i++) {
printf("学生%d的信息:\n", i + 1);
printf("学号:%d\n", s[i].id);
printf("姓名:%s\n", s[i].name);
printf("3门课程成绩:%.1f, %.1f, %.1f\n", s[i].score[0], s[i].score[1], s[i].score[2]);
printf("平均分:%.1f\n", s[i].avg_score);
printf("\n");
}
}
// 寻找平均分最高的学生信息
void max_score(struct student s[]) {
int max_index = 0;
float max_score = s[0].avg_score;
for(int i = 1; i < 5; i++) {
if(s[i].avg_score > max_score) {
max_index = i;
max_score = s[i].avg_score;
}
}
printf("平均分最高的学生信息:\n");
printf("学号:%d\n", s[max_index].id);
printf("姓名:%s\n", s[max_index].name);
printf("3门课程成绩:%.1f, %.1f, %.1f\n", s[max_index].score[0], s[max_index].score[1], s[max_index].score[2]);
printf("平均分:%.1f\n", s[max_index].avg_score);
}
int main() {
struct student s[5];
input(s);
for(int i = 0; i < 5; i++) {
s[i].avg_score = (s[i].score[0] + s[i].score[1] + s[i].score[2]) / 3;
}
print(s);
max_score(s);
return 0;
}
```
这段代码定义了一个结构体 `student`,包含学号、姓名、3门课程成绩和平均分。其中 `input` 函数用来输入5个学生的数据记录,`print` 函数用来输出每位学生的信息,`max_score` 函数用来寻找平均分最高的学生信息。在 `main` 函数中,先调用 `input` 函数输入数据,然后计算每位学生的平均分,再调用 `print` 和 `max_score` 函数输出结果。
阅读全文