如何将偶数放在前面 奇数放在每个偶数后面 形成一个1到n的数组 C++实现
时间: 2024-11-25 10:17:49 浏览: 5
在C++中,你可以通过双重循环来实现这个需求。首先遍历从1到n的所有数字,然后对于每个偶数,再遍历剩余的数字并找到第一个奇数插入其后。以下是简单的步骤和代码实现:
```cpp
#include <iostream>
#include <vector>
std::vector<int> arrangeNumbers(int n) {
std::vector<int> result(n);
int current = 0; // 当前填充的位置
for (int i = 1; i <= n; ++i) {
if (i % 2 == 0) { // 如果是偶数
while (current < n && result[current] % 2 != 1) ++current; // 找到下一个奇数位置
result[current++] = i;
} else { // 如果是奇数
result[current++] = i; // 直接插入偶数后的空位
}
}
return result;
}
// 测试函数
int main() {
int n = 6;
std::vector<int> arr = arrangeNumbers(n);
for (auto num : arr) {
std::cout << num << " ";
}
std::cout << "\n";
return 0;
}
```
当你运行`arrangeNumbers(n)`函数,它会返回一个数组,其中偶数位于所有奇数之前。例如,输入6会产生数组 [2, 4, 5, 1, 3, 6]。
阅读全文