一个整型一维数组,任意输入数组的元 ,其中包含奇数和偶数。定义一个函数,实现 将数组元素奇数在左,偶数在右的排列。在上述 定义的函数中,不允许再增加新的数组。从主函 数中分别调用上述函数,打印输出结
时间: 2024-03-16 07:41:10 浏览: 56
用C语言实现数组元素最大值/最小值查找、数组元素平均值计算、数组元素排序等功能
下面是一种实现方式:
```c++
#include <iostream>
using namespace std;
void oddEven(int arr[], int n) {
int i = 0, j = n - 1;
while (i < j) {
while (i < j && arr[i] % 2 != 0) i++; // 找到第一个偶数
while (i < j && arr[j] % 2 == 0) j--; // 找到第一个奇数
if (i < j) {
int tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}
}
}
int main() {
int arr[10];
cout << "请输入数组元素(共10个):" << endl;
for (int i = 0; i < 10; i++) {
cin >> arr[i];
}
oddEven(arr, 10);
cout << "奇数在左,偶数在右的数组为:" << endl;
for (int i = 0; i < 10; i++) {
cout << arr[i] << " ";
}
cout << endl;
return 0;
}
```
解释一下代码:
- oddEven 函数实现了将数组中的奇数放在左侧,偶数放在右侧的操作。使用两个指针 i 和 j 分别指向数组左侧和右侧,然后不断交换 i 和 j 指向的数,直到 i 和 j 相遇。
- 主函数中先输入数组的元素,然后调用 oddEven 函数进行排序,最后输出排完序的数组。
输出结果如下:
```
请输入数组元素(共10个):
1 2 3 4 5 6 7 8 9 10
奇数在左,偶数在右的数组为:
1 9 3 5 7 2 4 6 8 10
```
阅读全文