用C++语言完成下面的编程:编写程序,输入n个学生的学号和成绩(有1位小数),按成绩从高到低排序输出,n 小于50,学号小于10位。
时间: 2024-02-22 18:00:02 浏览: 35
好的,下面是使用 C++ 完成您的要求的代码示例:
```cpp
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
// 定义学生类
class Student {
public:
string id;
float score;
};
// 定义比较函数,按成绩从高到低排序
bool cmp(Student a, Student b) {
return a.score > b.score;
}
int main() {
// 初始化学生列表
Student students[50];
int n;
// 输入n个学生的学号和成绩
cout << "请输入学生数量:";
cin >> n;
for (int i = 0; i < n; i++) {
cout << "请输入第" << i+1 << "个学生的学号和成绩:";
cin >> students[i].id >> students[i].score;
}
// 按成绩从高到低排序
sort(students, students+n, cmp);
// 输出学生信息
cout << "学生列表(按成绩从高到低排序):" << endl;
for (int i = 0; i < n; i++) {
cout << "第" << i+1 << "名学生:" << endl;
cout << "学号:" << students[i].id << endl;
cout << "成绩:" << students[i].score << endl;
}
return 0;
}
```
以上代码中,我们使用 `Student` 类来定义学生对象,使用数组 `students` 存储所有学生信息,使用变量 `n` 存储学生数量。通过 `cin` 和 `cout` 来实现输入和输出。使用 `sort` 函数按成绩从高到低排序,排序的规则由 `cmp` 函数定义。