2172: 整数排序

内存限制:128 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:6 解决:5

题目描述

给定10个整数的序列,要求对其重新排序。排序要求:

1.奇数在前,偶数在后;

2.奇数按从大到小排序;

3.偶数按输入顺序逆序排序。

输入

输入一行,包含10个整数,彼此以一个空格分开,每个整数的范围是大于等于0,小于等于100。

输出

按照要求排序后输出一行,包含排序后的10个整数,数与数之间以一个空格分开。

样例输入 复制

4 7 3 13 11 12 0 47 34 98

样例输出 复制

47 13 11 7 3 98 34 0 12 4

提示

#include<bits/stdc++.h>
using namespace std;
int a[10],b[10],c[10];
int cmp(int x,int y) {
	return x>y;
}
int main(){
	int j=0,k=0;
    for (int i=0;i<10;i++) {
    	cin>>a[i];
    	if (a[i]%2==1)
    	    b[j++]=a[i];
    	else
    	    c[k++]=a[i];
	}
	sort(b,b+j,cmp);
	for (int i=0;i<j;i++) {
		cout<<b[i]<<" ";
	}
	for (int i=k-1;i>=0;i--) {
		cout<<c[i]<<" ";
	}
	return 0;
}