用c语言输入某班5位学生的姓名及数学、英语成绩,计算每位学生的平均分;然后输出平均分最高的学生之姓名及数学、英语成绩。
时间: 2024-02-13 09:04:00 浏览: 23
好的,这是一个简单的C语言程序示例,可以实现你的需求:
```c
#include <stdio.h>
#include <string.h>
#define MAX_NAME_LEN 20
struct student {
char name[MAX_NAME_LEN];
int math_score;
int eng_score;
float avg_score;
};
int main() {
struct student stu[5];
int i, max_avg_index = 0;
float max_avg_score = 0.0;
// 输入学生信息
for (i = 0; i < 5; i++) {
printf("请输入第%d位学生的姓名、数学成绩和英语成绩(用空格分隔):", i + 1);
scanf("%s %d %d", stu[i].name, &stu[i].math_score, &stu[i].eng_score);
stu[i].avg_score = (stu[i].math_score + stu[i].eng_score) / 2.0;
}
// 找到平均分最高的学生
for (i = 0; i < 5; i++) {
if (stu[i].avg_score > max_avg_score) {
max_avg_score = stu[i].avg_score;
max_avg_index = i;
}
}
// 输出结果
printf("平均分最高的学生是:%s,数学成绩:%d,英语成绩:%d,平均分:%.2f\n",
stu[max_avg_index].name, stu[max_avg_index].math_score,
stu[max_avg_index].eng_score, stu[max_avg_index].avg_score);
return 0;
}
```
程序中定义了一个 `struct student` 结构体,包含学生的姓名、数学成绩、英语成绩和平均分。首先通过循环输入每个学生的信息,然后计算出每个学生的平均分。接着通过循环找到平均分最高的学生,最后输出该学生的信息。
阅读全文