利用定义compare函数来实现复杂的排序算法
#include<iostream>
#include<algorithm>
using namespace std;

bool comp(int lhs, int rhs) {
	//不发生交换的条件 要求返回真
	if (lhs % 2 == 1 && rhs % 2 == 0){
		return true;
	}
	else if(lhs % 2 == 1 && rhs % 2 == 1 && lhs > rhs) {
		return true;
	}
	else if(lhs % 2 == 0 && rhs % 2 == 0 && lhs < rhs) {
		return true;
	}
	else return false;
}

int main() {
	int arr[10];

	while (cin >> arr[0] >> arr[1] >> arr[2] >> arr[3] >> arr[4] >> arr[5] >> arr[6] >> arr[7] >> arr[8] >> arr[9])
	{
		sort(arr,arr + 10,comp);  //comp这个函数不需要写括号(函数指针原理)
		for (int i = 0; i < 10; i++) 
		{
			if(arr[i] % 2 == 1)
			cout << arr[i] << ' ';
		}
		for (int i = 0; i < 10; i++) 
		{
			if (arr[i] % 2 == 0)
				cout << arr[i] << ' ';
		}
	}

}