c++采用一堆数组做函数参数,用交换法对成绩降序排序
时间: 2024-12-13 17:21:14 浏览: 1
在C++中,如果你想通过交换法对一组成绩(通常是一个数组或向量)进行降序排序,你可以使用冒泡排序、选择排序或者是更高效的快速排序等算法。这里以冒泡排序为例,因为它是通过元素之间的相互比较来进行的,适合于解释如何操作数组:
首先,假设我们有一个`double`类型的数组`scores`,存储了一组学生的成绩。我们可以创建一个名为`bubbleSortDescending`的函数,接受这个数组作为参数:
```cpp
#include <iostream>
void bubbleSortDescending(double scores[], int n) {
for (int i = 0; i < n - 1; ++i) { // 遍历所有元素直到倒数第二个
for (int j = 0; j < n - 1 - i; ++j) { // 内层循环避免已排好序部分
if (scores[j] < scores[j + 1]) { // 如果前一个分数小于后一个
double temp = scores[j]; // 临时存储较小的分数
scores[j] = scores[j + 1]; // 将较大分数移到前面
scores[j + 1] = temp; // 小的分数移动到后面
}
}
}
}
int main() {
double scores[] = {85.0, 92.5, 78.0, 96.5, 88.0};
int n = sizeof(scores) / sizeof(scores[0]);
bubbleSortDescending(scores, n);
std::cout << "Sorted scores in descending order:\n";
for (int i : scores) {
std::cout << i << " ";
}
std::cout << "\n";
return 0;
}
```
在这个例子中,`bubbleSortDescending`函数通过比较相邻的两个成绩并交换它们的位置,一次又一次地将最大的值“冒”到数组的末尾,直到整个数组都按照降序排列。
阅读全文