C++用交换法对成绩降序排序
时间: 2024-12-12 20:27:16 浏览: 5
在C++中,你可以使用交换法(也称为冒泡排序算法的一种变体)对成绩数组进行降序排序。假设你有一个`vector<int>`类型的数组,存储学生的分数,这里是一个简单的示例:
```cpp
#include <iostream>
#include <vector>
void bubbleSortDesc(std::vector<int>& scores) {
int n = scores.size();
for (int i = 0; i < n - 1; i++) { // 遍历所有元素直到倒数第二个
for (int j = 0; j < n - i - 1; j++) { // 内层循环用于每轮比较并交换
if (scores[j] < scores[j + 1]) { // 如果当前元素小于下一个元素
// 交换两个元素
std::swap(scores[j], scores[j + 1]);
}
}
}
}
// 示例
int main() {
std::vector<int> scores = {85, 92, 76, 99, 88};
bubbleSortDesc(scores);
for (const auto& score : scores) {
std::cout << score << " ";
}
std::cout << "\n";
return 0;
}
```
这段代码会按照降序排列学生成绩。如果你想对结构体或自定义类型的成绩进行排序,只需将`int`替换为你实际的学生分数类型,并提供适当的比较函数。
阅读全文