c++编写:给定一个正整数数组(3<长度<1000),调整数组中数字的顺序,使得所有奇数位于数组的前半部分
时间: 2025-02-16 20:14:44 浏览: 42
在C++中,为了实现这个功能,你可以创建一个自定义函数,首先对数组进行遍历,将所有的奇数放到一边,然后将剩余的元素(即偶数)放回原数组的位置。这里是一个简单的示例:
```cpp
#include <iostream>
#include <vector>
bool is_odd(int num) {
return num % 2 != 0;
}
void sort_odd_to_front(std::vector<int>& nums) {
int odd_count = 0; // 记录奇数的数量
for (int i = 0; i < nums.size(); ++i) {
if (is_odd(nums[i])) { // 如果遇到奇数
std::swap(nums[odd_count], nums[i]); // 将它放在奇数区
++odd_count;
}
}
// 将剩下的偶数移到前面
for (int i = odd_count; i < nums.size(); ++i) {
nums[i] = nums[i + 1]; // 每次移一位
}
nums.resize(odd_count); // 裁剪掉多余的偶数位置
}
int main() {
std::vector<int> nums = {4, 5, 2, 7, 1, 9, 6}; // 示例输入数组
sort_odd_to_front(nums);
for (const auto& num : nums) {
std::cout << num << " ";
}
std::cout << "
阅读全文
相关推荐

















