第一段代码为double是应当直接比较输出,否则当减的数小于1是会自动强制转化为0
第二段为int数组排序
第三段为char排序
第四段为结构体排序
#include
#include
int map(const void *a,const void *b){
double *aa = (double *)a;
double *bb = (double *)b;
if(*aa>*bb)
return 1;
else if(*aa<*bb)
return -1;
else
return 0;
}
int main()
{
int n,num,i;
scanf("%d",&n);
while(n--){
scanf("%d",&num);
double s[num];
for(i = 0 ; i < num ; i++)
scanf("%lf",&s[i]);
qsort(s,num,sizeof(s[0]),map);
for(i = 0 ; i < num ; i++)
printf("%f ",s[i]);
printf("\n\n");
}
return 0;
}int cmp(char *a,char *b)
{return *a - *b;}
int cmp( const void *a , const void *b )
{ return *(char *)a - *(char *)b; }int cmp(int *a,int *b)
{return *a - *b;}
int cmp( const void *a , const void *b )
{ return *(int *)a - *(int *)b; }struct coop{
int x,y;}
int cmp(struct coop *a,struct coop *b)
{return a->x - b->x;}
int cmp(struct coop *a,struct coop *b)
{ if ( a->x != b->x )
return a->x - b->x;
else return a->y - a->y;
}
int cmp( const void *a , const void *b )
{ return strcmp((*(struct coop *)a)->x,(*(struct coop *)b)->x); }