写出【实验8-3 输出平均分最高的学生信息】 假设学生的基本信息包括学号、姓名、三门课程成绩以及个人平均成绩,定义一个能够表示学生信息的结构类型。输入n(1<=n<=10)个学生的成绩信息,计算并输出平均分最高的学生信息,平均分保留两位小数。如果平均分最高的学生有多个,按输入顺序输出第一个学生的信息。 输入格式: 输入整数n(1<=n<=10),在下面n行输入n个学生的信息,包括学号、姓名、三门课程成绩(整数)。 输出格式: 在一行中输出平均分最高的学生信息:学号、姓名、平均分(保留两位小数)。 输入样例: 3 101 Zhang 78 87 85 102 Wang 91 88 90 103 Li 75 90 84 输出样例: num:102 name:Wang average:89.67的C语言代码
时间: 2024-03-11 14:45:22 浏览: 111
以下是一个可能的C语言实现方式:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 定义学生结构体
typedef struct {
char num[10];
char name[20];
int score1;
int score2;
int score3;
double average;
} Student;
int main() {
int n;
scanf("%d", &n);
// 初始化学生数组
Student students[n];
for (int i = 0; i < n; i++) {
scanf("%s%s%d%d%d", students[i].num, students[i].name, &students[i].score1, &students[i].score2, &students[i].score3);
students[i].average = (students[i].score1 + students[i].score2 + students[i].score3) / 3.0;
}
// 计算平均分最高的学生
double max_average = students[0].average;
Student max_student = students[0];
for (int i = 1; i < n; i++) {
if (students[i].average > max_average) {
max_average = students[i].average;
max_student = students[i];
}
}
// 输出结果
printf("num:%s name:%s average:%.2f", max_student.num, max_student.name, max_student.average);
return 0;
}
```
这个程序首先读入整数n,表示学生个数。接下来使用一个结构体来表示学生信息,然后读入n个学生的信息,并将它们存储在一个数组students中。接着遍历students数组,计算平均分最高的学生,最后输出结果。注意格式化输出时使用"%.2f"表示保留两位小数。
阅读全文