C++有一个十个元的整数数组,数组元无规律存储,请写一个程序,将该数组中所有偶数都移到 所有奇数的前面。 (练习对数组的双向遍历操作。)
时间: 2024-12-14 07:13:45 浏览: 6
在C++中,你可以使用两个指针,一个指向数组的开始(偶数部分),另一个指向当前处理的位置(可以是奇数或偶数)。当遇到奇数时,你可以交换它与当前偶数位置的元素,然后继续向后移动偶数指针。当偶数指针超过数组结束时,所有的偶数应该已经移动到了奇数之前。
这是一个简单的示例:
```cpp
#include <iostream>
void rearrangeArray(int arr[], int size) {
int even = 0; // 指向第一个偶数位置
for (int i = 0; i < size; i++) {
if (arr[i] % 2 == 0) { // 如果是偶数
// 交换偶数元素与未处理奇数的第一个位置
std::swap(arr[even], arr[i]);
even++; // 移动到下一个偶数位置
}
}
}
int main() {
int arr[] = {4, 7, 2, 9, 5, 8, 1, 6}; // 十个随机的整数
int size = sizeof(arr) / sizeof(arr[0]);
std::cout << "原始数组: ";
for (int i : arr) {
std::cout << i << " ";
}
rearrangeArray(arr, size);
std::cout << "\n调整后的数组: ";
for (int i : arr) {
std::cout << i << " ";
}
return 0;
}
```
运行这个程序后,你会看到所有偶数排在了奇数前面。注意,这里假设数组中至少有一个偶数。
阅读全文