古詩詞大全網 - 成語用法 - C語言關於qsort的問題 為什麽不能排序

C語言關於qsort的問題 為什麽不能排序

妳的cmp()函數的的參數類型不正確,qsort()函數要求cmp()函數的形參必須是const void*類型的,而不是int類型,修改如下:

//---------------------------------------------------------------------------

#include<stdio.h>

#include<stdlib.h>

#include<malloc.h>

int cmp(const void * x,const void * y) //註意這裏

{

return *(const int*)x-*(const int*)y; //註意這裏

}

void main()

{

int a,i;

int* b;

scanf("%d",&a);

b=(int*)malloc(a*sizeof(int));

for(i=0;i<a;i++)

{

scanf("%d",&b[i]);

}

qsort(b,a,sizeof(int),cmp);

for(i=0;i<a;i++)

{

printf("%d ",b[i]);

}

}

//---------------------------------------------------------------------------