有n个结构体变量,内含学生学号、姓名和3门课程的成绩。要求输出 乎均成绩最高的学生的信息(包括学号、姓名、3门课程成绩和平均成绩)。
时间: 2023-12-23 22:51:48 浏览: 91
假设有一个名为 `Student` 的结构体,包含学生学号、姓名和3门课程的成绩。那么可以按照以下方式编写代码来输出平均成绩最高的学生信息:
```c
#include <stdio.h>
#include <string.h>
// 定义结构体
struct Student {
char id[20];
char name[20];
float score[3];
float average;
};
int main() {
int n; // 学生数量
printf("请输入学生数量:");
scanf("%d", &n);
struct Student students[n]; // 定义学生结构体数组
// 输入学生信息
for (int i = 0; i < n; i++) {
printf("请输入第 %d 个学生的信息:\n", i + 1);
printf("学号:");
scanf("%s", students[i].id);
printf("姓名:");
scanf("%s", students[i].name);
printf("成绩1:");
scanf("%f", &students[i].score[0]);
printf("成绩2:");
scanf("%f", &students[i].score[1]);
printf("成绩3:");
scanf("%f", &students[i].score[2]);
// 计算平均成绩
students[i].average = (students[i].score[0] + students[i].score[1] + students[i].score[2]) / 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");
printf("学号:%s\n", students[max_index].id);
printf("姓名:%s\n", students[max_index].name);
printf("成绩1:%.2f\n", students[max_index].score[0]);
printf("成绩2:%.2f\n", students[max_index].score[1]);
printf("成绩3:%.2f\n", students[max_index].score[2]);
printf("平均成绩:%.2f\n", students[max_index].average);
return 0;
}
```
这里使用了两个循环,第一个循环用于输入学生信息并计算平均成绩,第二个循环用于找到平均成绩最高的学生。最后输出平均成绩最高的学生的信息。
阅读全文