之前没有用过qsort()函数,偶尔遇见,在此做个实例。
#include <stdio.h>
#include <stdlib.h>
int main()
{
int num[10];
for (int i = 0; i < 10; i++)
{
num[i] = rand();
printf("%d\t",num[i]);
}
printf("\n");
int cmp(const void *a, const void *b);
qsort(num,10,sizeof(int),cmp);
for (int i = 0; i < 10; i++)
{
printf("%d\t",num[i]);
}
printf("\n");
system("pause");
return 0;
}
int cmp(const void *a, const void *b)
{
return (*(int*)a - *(int*)b);
}
qsort(num,10,sizeof(int),cmp);
num表示待排序的数组;
10表示数组元素的个数;
sizeof(int)表示数组中单个元素的大小,当然用sizeof(num[0])也是可以的;
cmp用于决定排序的方式,在此为从小到大排序,如果要从打到小排序,将该函数中的语句修改为return (*(int*)b - *(int*)a);
对这个不是很理解,先mark