用c语言结构体输入30位学生的姓名及数学、英语成绩,输出平均分最高的学生的姓名及其数学和英语成绩。
时间: 2023-09-06 13:09:46 浏览: 124
好的,我可以为您解答这个问题。
以下是解决方案:
```c
#include <stdio.h>
#include <string.h>
// 定义学生结构体
struct student {
char name[20];
float math_score;
float english_score;
float average_score;
};
int main() {
struct student students[30];
float max_average_score = 0;
int max_index = 0;
// 输入学生信息
for (int i = 0; i < 30; i++) {
printf("请输入第%d位学生的姓名、数学成绩和英语成绩(以空格分隔):", i + 1);
scanf("%s %f %f", students[i].name, &students[i].math_score, &students[i].english_score);
// 计算平均分
students[i].average_score = (students[i].math_score + students[i].english_score) / 2;
// 找出平均分最高的学生
if (students[i].average_score > max_average_score) {
max_average_score = students[i].average_score;
max_index = i;
}
}
// 输出平均分最高的学生信息
printf("平均分最高的学生是%s,数学成绩为%.2f,英语成绩为%.2f,平均分为%.2f。",
students[max_index].name, students[max_index].math_score, students[max_index].english_score, students[max_index].average_score);
return 0;
}
```
这个程序使用了结构体来存储学生的信息,包括姓名、数学成绩、英语成绩和平均分。它使用一个循环来输入30位学生的信息,并且在输入过程中计算每个学生的平均分。然后,它找出平均分最高的学生,并输出其信息。
希望这个程序能够帮到您!
阅读全文