使用C++语言按照输入输出格式要求,根据程序模板将代码补充完整。求出Student数组中学生的最高平均分和最低平均分,并从高分到低分对数组重新排序,输出排序后的学生信息。 输入 先输入3个课程号,然后逐次输入4位学生的信息。 输出 按照格式输出最高分,最低分,以及排序后的结果。
时间: 2024-03-19 10:40:13 浏览: 12
下面是使用C++语言实现的代码:
```c++
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
// 定义学生结构体
struct Student {
string name; // 学生姓名
int score[3]; // 三门课程的成绩
double average; // 平均分
};
// 比较函数,用于排序
bool cmp(const Student& a, const Student& b) {
return a.average > b.average;
}
int main() {
int n = 4; // 学生数
int m = 3; // 课程数
int course[m]; // 三门课程的课程号
Student stu[n]; // 学生数组
double max_average = 0.0; // 最高平均分
double min_average = 100.0; // 最低平均分
// 输入课程号
cout << "请输入三门课程的课程号:" << endl;
for (int i = 0; i < m; i++) {
cin >> course[i];
}
// 输入学生信息
cout << "请逐次输入四位学生的信息:" << endl;
for (int i = 0; i < n; i++) {
cout << "请输入第" << i + 1 << "位学生的姓名:";
cin >> stu[i].name;
stu[i].average = 0.0;
for (int j = 0; j < m; j++) {
cout << "请输入" << stu[i].name << "的" << course[j] << "成绩:";
cin >> stu[i].score[j];
stu[i].average += stu[i].score[j];
}
stu[i].average /= m;
if (stu[i].average > max_average) {
max_average = stu[i].average;
}
if (stu[i].average < min_average) {
min_average = stu[i].average;
}
}
// 排序
sort(stu, stu + n, cmp);
// 输出结果
cout << "最高平均分为:" << max_average << endl;
cout << "最低平均分为:" << min_average << endl;
cout << "排序后的学生信息为:" << endl;
for (int i = 0; i < n; i++) {
cout << stu[i].name << "\t";
for (int j = 0; j < m; j++) {
cout << stu[i].score[j] << "\t";
}
cout << stu[i].average << endl;
}
return 0;
}
```
与C语言实现的代码类似,这里也是定义一个`Student`结构体表示学生信息,然后输入三门课程的课程号和四位学生的信息,并计算每个学生的平均分,求出最高平均分和最低平均分,最后按照平均分从高到低对学生进行排序,并输出排序后的结果。不同的是,这里使用了C++标准库中的`sort`函数进行排序。