将给定的n个整数从大到小排序后输出
时间: 2024-12-21 17:29:08 浏览: 5
对一个含有N整数的数组,使用堆排序让其由小到大输出
要将给定的n个整数按照从大到小的顺序进行排序并输出,你可以使用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函数对数组进行降序排列
qsort(arr, n, sizeof(int), compare);
}
int main() {
int numbers[] = {5, 9, 1, 7, 3};
int size = sizeof(numbers) / sizeof(numbers[0]);
printf("Numbers in descending order: ");
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
printf("\n");
sort_descending(numbers, size);
printf("After sorting (descending): ");
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
在这个示例中,我们首先定义了一个`compare`函数,它接受两个整数指针,返回一个负值表示第一个大于第二个,正值表示第一个小于第二个,0表示相等。然后在`main`函数里,我们创建了一个数组并调用`sort_descending`对其进行排序。
运行这个程序后,你会看到原始数组和排序后的数组(按降序)。
阅读全文