你这个是c程序还是c++
c++的话类型要求比较严格
比较函数接受的参数类型应该是const void*
c的话你main里函数原型的声明也不对啊,这样改一下
#include
#include
#include
int num[]={125,-26,53,12,-6,95,46,85,-45,785};/*定义全局数组*/
void main()
{
int i,comp1(const void *i,const void *j),comp2(const void *i,const void *j);
system("cls");/*清屏*/
printf("the original array is:\n");
for(i=0;i<10;i++)/*将数组按原序输出*/
printf("%10d",num[i]);
qsort(num,10,sizeof(int),comp1);
printf("\n The accending sorted array is:\n");
for(i=0;i<10;i++)/*将数组按升序输出*/
printf("%10d",num[i]);
qsort(num,10,sizeof(int),comp2);
printf("\n The decending sorted array is:\n");
for(i=0;i<10;i++)/*将数组按降序输出*/
printf("%10d",num[i]);
getchar();
}
comp1(const void *i,const void *j)
{
return *(const int*)i-*(const int*)j;
}
comp2(const void *i,const void *j)
{
return *(const int*)j-*(const int*)i;
}
定义的comp1 和comp2改为
int comp1 ( const void *i , const void *j )
{
return *(int *)i - *(int *)j;
}
int comp2 ( const void *i , const void *j )
{
return *(int *)j - *(int *)i;
}