题解 | #整数奇偶排序#
整数奇偶排序
http://www.nowcoder.com/practice/bbbbf26601b6402c9abfa88de5833163
比较函数区分为四种情况
- 奇奇
- 偶偶
- 奇偶
- 偶奇
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
bool Compare(int x, int y){
if( x%2 == 1 && y%2==1){
return y<x;//都是奇数,从大到小
}else if(x%2==0 && y%2 == 0){
return x<y;//都是偶数,从小到大
}else if(x%2 == 0 && y%2 == 1){
return false;//前偶后奇,不符合要求
}else{
return true;//前奇后偶
}
/*最后两句判断可以合为一句
return x%2 > y%2;
*/
}
int main(){
int arr[10];
while(cin >> arr[0]){
for(int i =1 ;i <10 ; i++)
cin >> arr[i];
sort(arr , arr +10, Compare);
for(int i = 0;i<10 ; i++)
printf("%d ",arr[i]);
printf("\n");
}
return 0;
}