C语言代码一维数组按从大到小排序
时间: 2024-12-18 19:23:58 浏览: 5
在C语言中,如果你想对一维整数数组按照从大到小的顺序进行排序,可以使用标准库函数 `qsort` 和自定义比较函数。假设我们有一个名为 `arr` 的数组,例如 `int arr[] = {5, 2, 9, 1, 7}`,可以这样做:
```c
#include <stdio.h>
#include <stdlib.h> // 包含 qsort 函数
// 自定义比较函数,用于qsort排序,这里按照降序排列
int compare(const void* a, const void* b) {
return (*(const int*)b - *(const int*)a); // 使用减法得到负值表示前者大于后者
}
int main() {
int arr[] = {5, 2, 9, 1, 7};
int size = sizeof(arr) / sizeof(arr[0]); // 计算数组大小
int temp;
// 对数组进行降序排序
qsort(arr, size, sizeof(int), compare);
// 输出排序后的数组
printf("数组按从大到小排序:\n");
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
在这个例子中,`compare` 函数接受两个指针作为参数,分别指向待比较的两个元素。如果第一个元素大于第二个,返回正值;如果小于则返回负值;相等返回零。`qsort` 函数依据这个比较函数对数组进行排序。
运行此程序,你会看到输出:
```
数组按从大到小排序:
9 7 5 2 1
```
阅读全文