这两天刷题时,经常会用到排序,c编译器函数库有自带的快速排序函数qsort,这样使用起来当然会很方便,但是用的时候可要注意了,例如当我对double型数组进行排序时,这样行就不正确:
int cmp(const void *a,const void *b)
{
return *(double *)a-*(double *)b;
}
因为double型相减可能为零点几,这样返回值会变成0(因为返回值类型为int),因此结果会出现错误。正确写法可参考http://blog.sina.com.cn/s/blog_48f85e1d0100nslz.html(说的很详细)