标题:
排序2
类别:
数组
时间限制
2S
内存限制
1000Kb
问题描述:
给定N个不同的整数,要求对这N个整数按如下规则排序并输出。
规则一:所有的偶数排在奇数前面。
规则二:在规则一的前提下按照从大到小的顺序排序。
输入说明
数据由两行构成,第一行为整数n(n<=100),表示待排序整数的数量。第二行是n个整数,每个整数的取值区间都为[-32768~32767],整数之间以空格间隔。
输出说明
在一行输出排好序的整数,整数之间以空格间隔。
输入样例
5
1 2 3 4 5
输出样例
4 2 5 3 1
代码:(选用GNU C/C++编译器)
#include<stdio.h>
int main()
{
int N,i,j,t;
scanf("%d\n",&N);
int a[N];
for(i=0;i<N;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<(N-1);i++)
{
for(j=i+1;j<N;j++)
{
if(a[i]<a[j])
{
t = a[i];
a[i] = a[j];
a[j] = t;
}
}
}
for(i=0,j=0;i<N;i++)
{
if(a[i]%2==0)
{
t = a[i];
a[i] = a[j];
a[j] = t;
j++;
}
}
for(i=j;i<N;i++)
{
for(j=i+1;j<N;j++)
{
if(a[i]<a[j])
{
t = a[i];
a[i] = a[j];
a[j] = t;
}
{
}
for(i=0;i<N;i++)
{
printf("%d ",a[i]);
}
}