偶在前奇在后排序
问题描述:
给定N个不同的整数,要求对这N个整数按如下规则排序并输出。
规则一:所有的偶数排在奇数前面。
规则二:在规则一的前提下按照从大到小的顺序排序
输入说明:
数据由两行构成,第一行为整数n(n<=100),表示待排序整数的数量。第二行是n个整数,每个整数的取值区间都为[-32768~32767],整数之间以空格间隔。
输出说明:
在一行输出排好序的整数,整数之间以空格间隔。
#include<stdio.h>
int main()
{
int n,i,j=0,k=0,num1,num2,b[100],c[100],a[100],t;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
if(a[i]%2==0)
{
b[j]=a[i];
j=j+1;
}
else
{
c[k]=a[i];
k=k+1;
}
}
num1=j;
num2=k;
for(j=0;j<num1-1;j++)
{
for(i=0;i<num1-1-j;i++)
{
if(b[i]<b[i+1])
{
t=b[i];
b[i]=b[i+1];
b[i+1]=t;
}
}
}
for(j=0;j<num2-1;j++)
for(i=0;i<num2-1-j;i++)
if(c[i]<c[i+1])
{
t=c[i];
c[i]=c[i+1];
c[i+1]=t;
}
for(i=0;i<num1;i++)
printf("%d ",b[i]);
for(i=0;i<num2;i++)
printf("%d ",c[i]);
return 0;
}