从键盘输入8个整数存入一个一维整型数组,将这8个整数中的偶数排在前,奇数排在后,且偶数部分按降序排列,奇数部分按升序排列,最后输出排序结果。
时间: 2023-12-27 18:02:25 浏览: 126
好的,这是一个比较基础的排序问题,以下是示例代码,仅供参考:
```c++
#include <iostream>
#include <algorithm>
using namespace std;
bool cmp(int a, int b) {
if (a % 2 == 0 && b % 2 == 0) { // 如果两个数都是偶数
return a > b; // 降序排列
} else if (a % 2 != 0 && b % 2 != 0) { // 如果两个数都是奇数
return a < b; // 升序排列
} else {
return a % 2 == 0; // 如果一个数是偶数,一个数是奇数,那么偶数在前,奇数在后
}
}
int main() {
int arr[8];
for (int i = 0; i < 8; i++) {
cin >> arr[i];
}
sort(arr, arr + 8, cmp);
for (int i = 0; i < 8; i++) {
cout << arr[i] << " ";
}
cout << endl;
return 0;
}
```
这个程序首先定义了一个 `cmp` 函数用来排序,排序规则如下:
- 如果两个数都是偶数,则降序排列
- 如果两个数都是奇数,则升序排列
- 如果一个数是偶数,一个数是奇数,那么偶数在前,奇数在后
然后在 `main` 函数中,首先读入 8 个整数,然后使用 `sort` 函数进行排序,最后输出排序结果。
阅读全文