c语言用函数对输入的数排序
时间: 2024-10-25 10:18:05 浏览: 22
在C语言中,你可以使用标准库函数`qsort()`来进行数组的排序,特别是当你需要对整数或其他特定类型的元素进行快速排序时。这个函数接受两个参数:待排序数组的首地址和数组的大小。下面是一个简单的例子,展示了如何使用`qsort()`对整型数组进行降序排列:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义比较函数,用于qsort()
int compare(const void* a, const void* b) {
return (*(int*)b - *(int*)a); // 降序排列,若想升序只需取反
}
void sort_array(int arr[], int size) {
if (size > 1) { // 如果数组有至少两个元素
qsort(arr, size, sizeof(int), compare); // 调用qsort并指定比较函数
}
}
int main() {
int numbers[] = {5, 2, 9, 1, 7};
int array_size = sizeof(numbers) / sizeof(numbers[0]);
printf("Before sorting:\n");
for (int i = 0; i < array_size; i++) {
printf("%d ", numbers[i]);
}
sort_array(numbers, array_size);
printf("\nAfter sorting in descending order:\n");
for (int i = 0; i < array_size; i++) {
printf("%d ", numbers[i]);
}
return 0;
}
```
在这个示例中,`compare()`函数告诉`qsort()`如何判断元素之间的顺序。如果你想进行升序排序,只需将`return (*(int*)b - *(int*)a)`改为`return (*(int*)a - *(int*)b)`。
阅读全文