假设学生的基本信息包括学号、姓名、三门课程成绩以及个人平均成绩,定义一个能够表示学生信息的结构类型。输入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
时间: 2024-02-29 07:53:53 浏览: 137
以下是示例代码:
```cpp
#include <iostream>
#include <string>
using namespace std;
// 定义学生结构体
struct Student {
string num; // 学号
string name; // 姓名
int score[3]; // 三门课程成绩
double average; // 平均分
};
int main() {
int n;
cin >> n;
// 读入学生信息
Student stu[n];
for (int i = 0; i < n; i++) {
cin >> stu[i].num >> stu[i].name;
for (int j = 0; j < 3; j++) {
cin >> stu[i].score[j];
}
// 计算平均分
stu[i].average = (stu[i].score[0] + stu[i].score[1] + stu[i].score[2]) / 3.0;
}
// 找到平均分最高的学生
int maxIndex = 0;
for (int i = 1; i < n; i++) {
if (stu[i].average > stu[maxIndex].average) {
maxIndex = i;
}
}
// 输出平均分最高的学生信息
cout << "num:" << stu[maxIndex].num << " name:" << stu[maxIndex].name << " average:" << fixed << setprecision(2) << stu[maxIndex].average << endl;
return 0;
}
```
注意,为了保留两位小数,我们需要使用 `fixed` 和 `setprecision`。而且,由于学生信息中包含空格,所以我们需要使用 `string` 类型来保存学生姓名。
阅读全文