编写程序,输入n个学生的学号和成绩(有1位小数),按成绩从高到低排序输出,n小于50,学号小于10位。
时间: 2023-09-08 19:16:43 浏览: 43
可以使用结构体来存储每个学生的学号和成绩,然后使用快速排序算法对学生成绩进行排序,最后输出排序好的学生信息即可。
以下是示例代码实现:
```c++
#include <iostream>
#include <algorithm>
using namespace std;
struct Student {
char id[11];
double score;
};
bool cmp(Student a, Student b) {
return a.score > b.score;
}
int main() {
int n;
cin >> n;
Student arr[n];
for (int i = 0; i < n; i++) {
cin >> arr[i].id >> arr[i].score;
}
sort(arr, arr + n, cmp);
for (int i = 0; i < n; i++) {
cout << arr[i].id << " " << arr[i].score << endl;
}
return 0;
}
```
在这个程序中,我们首先输入了学生的数量n,并定义了一个结构体Student来存储每个学生的学号和成绩。然后,我们使用一个for循环来输入每个学生的信息,并将其存储到一个数组中。接下来,我们使用sort函数(快速排序)对学生成绩进行排序,排序的依据是cmp函数,该函数返回true如果第一个参数的成绩比第二个参数的成绩高。最后,我们使用一个for循环将排序后的学生信息输出到屏幕上。