任意排序的10个整数(0~100),彼此以空格分隔。
可能有多组测试数据,对于每组数据,按照要求排序后输出,由空格分隔。 1. 测试数据可能有很多组,请使用while(cin>>a[0]>>a[1]>>...>>a[9])类似的做法来实现; 2. 输入数据随机,有可能相等。
4 7 3 13 11 12 0 47 34 98
47 13 11 7 3 0 4 12 34 98
#include <stdio.h>
#include <stdlib.h>
int n = 10;
int num[11];
int cmp(const void* lhs, const void* rhs)
{
return *(int*)lhs - *(int*)rhs;
}
int main()
{
int i = 0;
while(scanf("%d", &num[i]) != EOF)
{
i++;
if (i == 10)
{
i = 0;
qsort(num, n, sizeof(int), cmp);
for (int j = 9; j >= 0; j --)
if (num[j] & 1)
printf("%d ", num[j]);
for (int j = 0; j < n; j ++)
if (!(num[j] & 1))
printf("%d ", num[j]);
puts("");
}
}
return 0;
} #include <stdio.h>
#include <stdlib.h>
int cmp(const void *x,const void *y)
{
int a=*(int*)x;
int b=*(int*)y;
if(a%2==0&&b%2==0)
{
return a-b;
}else if(a%2==1&&b%2==1)
{
return b-a;
}else{
return (a%2==1)?-1:1;
}
}
int main()
{
int i;
int a[10];
while(scanf("%d",&a[0])!=EOF)
{
for(i=1;i<10;i++)
{
scanf("%d",&a[i]);
}
qsort(a,10,sizeof(a[0]),cmp);
for(i=0;i<10;i++)
{
printf("%d ",a[i]);
}
}
return 0;
}