sort函数在C语言中可以对数组元素进行排序吗
时间: 2023-11-28 20:49:34 浏览: 78
使用C语言实现调用函数进行数组排序.docx
是的,C语言中的sort函数可以对数组元素进行排序。sort函数是C标准库中的一个函数,其原型定义在stdlib.h头文件中。
sort函数的调用格式为:
```c
void sort(void* base, size_t num, size_t size, int (*compar)(const void*, const void*));
```
其中,base是待排序数组的首地址;num是待排序数组的元素个数;size是待排序数组中每个元素的大小;compar是一个函数指针,用于比较两个元素的大小关系。
比较函数的原型为:
```c
int compar(const void* a, const void* b);
```
其中,a和b分别是待比较的两个元素的地址。如果a小于b,则返回负整数;如果a等于b,则返回0;如果a大于b,则返回正整数。
例如,对一个整型数组进行升序排序的代码如下:
```c
#include <stdio.h>
#include <stdlib.h>
int compare(const void* a, const void* b) {
return *(int*)a - *(int*)b;
}
int main() {
int arr[] = {3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5};
int n = sizeof(arr) / sizeof(int);
qsort(arr, n, sizeof(int), compare);
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
输出结果为:
```
1 1 2 3 3 4 5 5 5 6 9
```
可以看到,数组元素已经按照从小到大的顺序排列。
阅读全文