用C语言编写,将一维数组中的数据从大到小排序
时间: 2024-12-14 11:23:45 浏览: 9
在C语言中,对一维整型数组进行降序排序(即从大到小)可以使用标准库函数`qsort()`,结合自定义的比较函数。这里是一个简单的示例:
```c
#include <stdio.h>
#include <stdlib.h>
// 自定义比较函数,用于降序排列
int compare(const void *a, const void *b) {
return (*(int*)b - *(int*)a); // 如果第一个元素大于第二个,返回正数;反之则返回负数
}
void sort_descending(int arr[], int size) {
qsort(arr, size, sizeof(int), compare); // 第四个参数传递比较函数
}
int main() {
int numbers[] = {5, 9, 1, 7, 3};
int array_size = sizeof(numbers)/sizeof(numbers[0]);
printf("Before sorting: ");
for (int i = 0; i < array_size; i++) {
printf("%d ", numbers[i]);
}
sort_descending(numbers, array_size);
printf("\nAfter sorting in descending order: ");
for (int i = 0; i < array_size; i++) {
printf("%d ", numbers[i]);
}
return 0;
}
```
在这个例子中,我们首先定义了一个`compare`函数,它接受两个整数指针作为参数并返回一个整数值。如果第一个元素应该排在第二个元素之后(即第一个元素更大),则返回正值;相反,返回负值。然后,在`main`函数中,我们调用`qsort`函数传入数组、数组大小、每个元素的大小以及我们的自定义比较函数。
运行这个程序,你会看到输入数组先打印出来,然后是降序排序后的结果。
阅读全文