蒜术师给了你一个 10 个整数的序列,要求对其重新排序。排序要求:
-
奇数在前,偶数在后;
-
奇数按从大到小排序;
-
偶数按从小到大排序。
输入格式:
输入一行,包含 10 个整数,彼此以一个空格分开,每个整数的范围是大于等于 0,小于等于 100。
输出格式:
按照要求排序后输出一行,包含排序后的 10 个整数,数与数之间以一个空格分开。
#include<stdio.h>
#define n 10//用10定义n的范围
int main()
{
int a[n];
int b[n];
int c[n],i,j=0,k=0,d,e,y;
for(i=0;i<10;i++)//利用循环输入数据
{ scanf("%d",&a[i]);
if(a[i]%2!=0)//判断a[i]是否是奇数,若是,则用数组b定义
{ b[j]=a[i];
j++;
}else if(a[i]%2==0)//判断a[i]是否是奇数,若是,则用数组c定义
{ c[k]=a[i];
k++;
}
}
for(i=0;i<=k;i++)//将偶数按照从小到大的顺序排序
{ for(y=1;y<k;y++)
{ if(c[y]<c[y-1])
{ e=c[y];
c[y]=c[y-1];
c[y-1]=e;
}
}
}
for(i=0;i<=j;i++){//将奇数按照从大到小的顺序排序
for(y=1;y<j;y++){
if(b[y]>b[y-1])
{ d=b[y];
b[y]=b[y-1];
b[y-1]=d;
}
}
}
for(i=0;i<j;i++){
printf("%d ",b[i]);
}
for(i=0;i<k;i++){
printf("%d ",c[i]);
}
return 0;
}