整数奇偶排序-题解

描述

现在小陈同学学习完了排序,现在他接到了一个任务:

给定一个 10 个整数的序列,要求对其重新排序。排序要求:

1.奇数在前,偶数在后;

2.奇数按从大到小排序;

3.偶数按从小到大排序。

输入描述

输入一行,包含 10个整数,彼此以一个空格分开,
每个整数的范围是大于等于0,小于等于100。

输出描述

按照要求排序后输出一行,包含排序后的10个整数,数与数之间以一个空格分开。

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include <bits/stdc++.h>
using namespace std;

void m(int arr[], int n) {
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
bool tmp = false;
if (arr[j] % 2 == 0 && arr[j + 1] % 2 != 0) {
tmp = true;
}
else if (arr[j] % 2 != 0 && arr[j + 1] % 2 != 0 && arr[j] < arr[j + 1]) {
tmp = true;
}
else if (arr[j] % 2 == 0 && arr[j + 1] % 2 == 0 && arr[j] > arr[j + 1]) {
tmp = true;
}
if (tmp) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}

int main() {
int in[10];
for (int i = 0; i < 10; i++) {
cin >> in[i];
}
m(in, 10);
for (int i = 0; i < 10; i++) {
cout << in[i] << " ";
}
return 0;
}

整数奇偶排序-题解
https://chenxi-tijie.pages.dev/2025/07/整数奇偶排序-题解/
作者
chenxi
发布于
2025年7月3日
许可协议