思路:
对输入数组进行默认排序,反向扫描并输出奇数,然后正向扫描并输出偶数。
解答:
#include <cstdio>
#include <algorithm>
using namespace std;
int main() {
int arr[10];
while(scanf("%d %d %d %d %d %d %d %d %d %d", &arr[0], &arr[1], &arr[2], &arr[3], &arr[4], &arr[5], &arr[6], &arr[7], &arr[8], &arr[9]) != EOF) {
sort(arr, arr + 10);
// 反向扫描,输出奇数
for(int i = 9; i >= 0; i--) {
if(arr[i] % 2 == 1) {
printf("%d ", arr[i]);
}
}
// 正向扫描,输出偶数
for(int i = 0; i <= 9; i++) {
if(arr[i] % 2 == 0) {
printf("%d ", arr[i]);
}
}
printf("\n");
}
return 0;
}
笔记:
最后一行多输出一个空格也没关系。