思路:
对输入数组进行默认排序,反向扫描并输出奇数,然后正向扫描并输出偶数。
解答:
#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;
}
笔记:
最后一行多输出一个空格也没关系。
本文介绍了一种通过先排序后扫描的方式,实现从输入数组中先输出所有奇数再输出所有偶数的C++程序设计思路。代码使用了标准模板库(STL)中的sort函数进行排序,然后分别从后向前和从前向后扫描数组,输出奇数和偶数。
228

被折叠的 条评论
为什么被折叠?



