关于排序的问题
将一整数列按奇数在前,偶数在后的顺序排列,并要求奇偶2部分均分别有序假设有10个数字 2 8 13 20 9 1 45 33 48 7
现在要改变成 1 7 9 13 33 45 2 8 20 48

程序代码:#include <stdio.h>
#include <stdlib.h>
int comp( const void * p, const void * q)
{
int a = *( int * )p;
int b = *( int * )q;
if (a%2-b%2==0)
return a-b;
else
return b%2-a%2;
}
int main()
{
int a[10];//以10为例
int i;
printf("Input 10 numbers:");
for (i=0;i<10 ;i++ )
scanf("%d",a+i);
qsort(a,10,sizeof(int),comp);
for (int i=0;i<10 ;i++ )
printf("%d ",a[i]);
return 0;
}
