c输出数组从大到小排序
时间: 2024-09-29 08:05:21 浏览: 37
在C语言中,如果你想按照降序(从大到小)对数组进行排序,可以使用标准库函数`qsort`来进行快速排序,或者是手动实现选择排序、冒泡排序或者插入排序等算法,并在比较元素时修改比较逻辑,使之满足降序排列。
例如,如果你有一个整数数组,你可以这样做:
```c
#include <stdio.h>
#include <stdlib.h>
// 用于降序比较的辅助函数
int compare(const void *a, const void *b) {
return (*(const int*)b - *(const int*)a); // 如果想先高后低,取负值
}
void sort_descending(int arr[], int n) {
qsort(arr, n, sizeof(int), compare);
}
int main() {
int array[] = {5, 3, 8, 1, 9};
int size = sizeof(array) / sizeof(array[0]);
printf("Before sorting: ");
for (int i = 0; i < size; i++) {
printf("%d ", array[i]);
}
sort_descending(array, size);
printf("\nAfter sorting in descending order: ");
for (int i = 0; i < size; i++) {
printf("%d ", array[i]);
}
return 0;
}
```
在这个例子中,`compare` 函数返回一个负数表示第一个元素应该排在第二个元素之前,即降序排列。运行这个程序,你会看到数组按降序排列的结果。
阅读全文