用c语言结构体输入30位学生的姓名及数学、英语成绩,输出平均分最高的学生的姓名及其数学和英语成绩。
时间: 2023-09-06 12:10:42 浏览: 100
计算学生的平均成绩(c语言)
3星 · 编辑精心推荐
好的,我可以为您提供一份示例代码。请注意,以下代码仅用于演示目的。在实际应用中,您需要根据实际情况进行修改。
```c
#include <stdio.h>
#include <string.h>
#define N 30
struct Student {
char name[20];
float math;
float english;
float avg;
};
int main() {
struct Student stu[N];
float sum_math = 0, sum_english = 0;
float max_avg = 0;
int max_index = 0;
// 输入学生信息
for (int i = 0; i < N; i++) {
printf("请输入第%d个学生姓名:", i + 1);
scanf("%s", stu[i].name);
printf("请输入该学生的数学成绩:");
scanf("%f", &stu[i].math);
printf("请输入该学生的英语成绩:");
scanf("%f", &stu[i].english);
// 计算平均分
stu[i].avg = (stu[i].math + stu[i].english) / 2;
// 统计总分
sum_math += stu[i].math;
sum_english += stu[i].english;
}
// 计算全班平均分
float avg_math = sum_math / N;
float avg_english = sum_english / N;
// 找出平均分最高的学生
for (int i = 0; i < N; i++) {
if (stu[i].avg > max_avg) {
max_avg = stu[i].avg;
max_index = i;
}
}
// 输出结果
printf("全班数学平均分为:%f\n", avg_math);
printf("全班英语平均分为:%f\n", avg_english);
printf("平均分最高的学生是:%s,数学成绩为:%f,英语成绩为:%f,平均分为:%f\n",
stu[max_index].name, stu[max_index].math, stu[max_index].english, stu[max_index].avg);
return 0;
}
```
在这个示例代码中,我们定义了一个名为 `Student` 的结构体,包含了学生的姓名、数学成绩、英语成绩和平均分。我们使用循环来输入30位学生的信息,并且在输入的同时计算每个学生的平均分,以及统计全班的数学总分和英语总分。接着,我们计算全班的数学平均分和英语平均分,并且使用循环找出平均分最高的学生。最后,我们输出全班平均分以及平均分最高的学生的姓名、数学成绩、英语成绩和平均分。
希望这个示例代码能够对您有所帮助!
阅读全文