c++,完成程序,只在Program和End之间增加代码。 编写一个为数组排序的函数oddeven(int a[], int n);其中a为待排序的数组,n为数组中的元素个数(n<100)。 排序要求: (1)奇数在前,偶数在后,即奇数下标比偶数小; (2)奇数按从小到大排列; (3)偶数按从大到小排列。 例如:排序前数组a为{1 2 3 4 5},排序后为{1 3 5 4 2}。
时间: 2023-11-22 16:54:42 浏览: 149
odd_even_sort.zip_even odd mpi_even odd sort mpi_odd_even_sort_s
以下是代码实现:
```c++
#include <iostream>
using namespace std;
void oddeven(int a[], int n) {
for(int i = 0; i < n - 1; i++) {
for(int j = i + 1; j < n; j++) {
if((a[i] % 2 == 0 && a[j] % 2 == 0 && a[i] < a[j]) || (a[i] % 2 == 1 && a[j] % 2 == 1 && a[i] > a[j])) {
swap(a[i], a[j]);
}
}
}
}
int main() {
int a[] = {1, 2, 3, 4, 5};
int n = sizeof(a) / sizeof(int);
oddeven(a, n);
for(int i = 0; i < n; i++) {
cout << a[i] << " ";
}
cout << endl;
return 0;
}
```
其中,oddeven函数用于实现排序,采用了双重循环,依次比较相邻两个元素的大小和奇偶性,并根据要求进行交换。主函数中定义了一个测试数组a,并计算出其元素个数n,然后调用oddeven函数进行排序,最后输出排序后的数组。
阅读全文