int Compare_double(const void* a, const void* b)
{
double arg1 = *(const double*)a;
double arg2 = *(const double*)b;
double arg3 = arg1 - arg2;
double eps = 1e-6;
if (-eps <= arg3 && arg3 <= eps)
{
return 0;
}
if (eps <= arg3 )
{
return 1;
}
if ( arg3 <= -eps)
{
return -1;
}
}
void Show(const double *arr, int len)
{
for (int i = 0; i < len; i++)
{
printf("%.2f ", arr[i]);
}
printf("\n");
}
int main()
{
double arr[] = { 2.3,1.4,4.4,3.5,5.6,9.7,8.8,6.2 };
qsort(arr, sizeof(arr) / sizeof(arr[0]), sizeof(double), Compare_double);
Show(arr, sizeof(arr) / sizeof(arr[0]));
return 0;
}
qsort:通用的快速排序 可以处理不同类型的数组数据void qsort(void *base,//数组开始地址
size_t num,//数组个数
size_t width,//数个单个数据多大
int (__cdecl *compare )(const void *, const void *) //数组中两个值 比较的规则);