C++:采用一维数组做函数参数,用交换法对成绩降序排序
时间: 2024-12-14 22:14:44 浏览: 11
在C++中,如果你想要使用一维数组作为函数参数,并利用交换法对成绩进行降序排列,你可以定义一个辅助函数用于交换数组元素,然后在主函数中递归地遍历整个数组。下面是一个简单的示例:
```cpp
#include <iostream>
// 辅助函数,用于交换数组中的两个元素
void swap(int& a, int& b) {
int temp = a;
a = b;
b = temp;
}
// 主函数,对输入的一维数组进行降序排序
void sortDescending(int arr[], int n) {
if (n > 1) { // 如果数组长度大于1
for (int i = 0; i < n - 1; i++) {
// 找到未排序部分的最大值并交换到第一个位置
int maxIndex = i;
for (int j = i + 1; j < n; j++) {
if (arr[j] > arr[maxIndex]) {
maxIndex = j;
}
}
swap(arr[i], arr[maxIndex]);
}
}
}
int main() {
int scores[5] = {89, 95, 76, 82, 90}; // 示例成绩数组
int size = sizeof(scores) / sizeof(scores[0]); // 获取数组长度
std::cout << "原始数组:";
for (int i = 0; i < size; i++) {
std::cout << scores[i] << " ";
}
sortDescending(scores, size);
std::cout << "\n降序排序后的数组:";
for (int i = 0; i < size; i++) {
std::cout << scores[i] << " ";
}
return 0;
}
```
在这个例子中,`sortDescending`函数通过两层循环找到数组中剩余部分的最大值,并将其与当前元素交换,直到整个数组按照降序排列。注意这只是一个基本的冒泡排序算法,对于大型数据集效率不高。
阅读全文