#include <algorithm> #include <cstdio> #include <iostream> using namespace std; bool Comp(int a, int b){ if (a%2 == 0 && b%2 == 0 ) {//两个数都是偶数,从小往大排 return a < b; }else if (a%2 == 1 && b%2 == 1 ) {//两个数都是奇数,从大往小排 return a > b; }else if (a%2 == 0 && b%2 == 1 ){//偶数在前则交换顺序,奇数在前则不交换顺序 return false; }else { return true; } } int main() { int a[10]; while (scanf("%d",&a[0]) != EOF) { for (int i = 1; i < 10; ++i) { scanf("%d",&a[i]); } sort(a, a+10,Comp); for (int b : a) { printf("%d ",b); } printf("\n"); } }