编写函数将数组从大到小排列
时间: 2024-10-27 19:09:04 浏览: 11
易语言柱状图从大到小排列
在C语言中,你可以使用冒泡排序或选择排序算法来对数组进行降序排列。这里我会演示一种简单的选择排序算法,因为它每次只交换当前未排序部分的最大值,适用于数组大小较小的情况。如果你想处理大型数组,更高效的算法如快速排序、归并排序可能更适合。
这是一个选择排序的例子:
```c
#include <stdio.h>
// 函数定义,接受数组指针、数组长度作为参数
void sort_descending(int arr[], int n) {
for (int i = 0; i < n - 1; i++) {
// 初始化最大元素索引
int max_idx = i;
// 内层循环找到剩余部分中的最大值
for (int j = i + 1; j < n; j++) {
if (arr[j] > arr[max_idx]) {
max_idx = j;
}
}
// 如果找到了更大的元素,则交换
if (max_idx != i) {
int temp = arr[i];
arr[i] = arr[max_idx];
arr[max_idx] = temp;
}
}
}
// 测试函数
void print_array(int arr[], int size) {
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
printf("\n");
}
int main() {
int numbers[] = {5, 3, 9, 1, 7};
int array_size = sizeof(numbers) / sizeof(numbers[0]);
// 先按原顺序打印
printf("Original Array:\n");
print_array(numbers, array_size);
// 排序后
sort_descending(numbers, array_size);
printf("Sorted Array (Descending):\n");
print_array(numbers, array_size);
return 0;
}
```
阅读全文