C++ 数组奇偶分离:将整数数组分为奇数和偶数部分

本示例代码展示如何使用 C++ 将一个整数数组分为奇数和偶数两部分,并按照原序列顺序输出调整后的数组元素。

代码实现

#include <iostream>
#include <vector>

std::vector<int> separateOddEven(const std::vector<int>& nums) {
    std::vector<int> result;
    for (int num : nums) {
        if (num % 2 == 1) {
            result.push_back(num); // 奇数放在结果数组的左边
        }
    }
    for (int num : nums) {
        if (num % 2 == 0) {
            result.push_back(num); // 偶数放在结果数组的右边
        }
    }
    return result;
}

int main() {
    std::vector<int> nums;

    std::cout << 'Enter the elements of the array (separated by commas): '; 
    std::string input;
    std::getline(std::cin, input);

    size_t pos = 0;
    while ((pos = input.find(',')) != std::string::npos) {
        nums.push_back(std::stoi(input.substr(0, pos))); // 将输入的字符串转换为整数
        input.erase(0, pos + 1);
    }
    nums.push_back(std::stoi(input)); // 处理最后一个元素

    std::vector<int> separated = separateOddEven(nums);

    std::cout << 'Adjusted array: '; 
    for (size_t i = 0; i < separated.size(); ++i) {
        std::cout << separated[i];
        if (i != separated.size() - 1) {
            std::cout << ',';
        }
    }
    std::cout << std::endl;

    return 0;
}

代码解释

  1. separateOddEven 函数

    • 接受一个整数数组 nums 作为参数。
    • 创建一个新的 result 数组来存储调整后的结果。
    • 遍历 nums,将奇数元素加入 result 的左边。
    • 再次遍历 nums,将偶数元素加入 result 的右边。
    • 返回 result 数组。
  2. main 函数

    • 从用户输入中获取整数数组元素,并将它们存储在 nums 中。
    • 调用 separateOddEven 函数,并将返回的调整后的数组存储在 separated 中。
    • 遍历 separated 数组,输出调整后的数组元素。

示例运行结果

Enter the elements of the array (separated by commas): 1,2,3,4,5,6,7,8,9,10
Adjusted array: 1,3,5,7,9,2,4,6,8,10

总结

本示例程序使用 C++ 实现将一个整数数组分为奇数和偶数两部分,并按照原序列顺序输出调整后的数组元素。代码逻辑清晰,易于理解,可作为学习 C++ 数组处理和算法的参考。

C++ 数组奇偶分离:将整数数组分为奇数和偶数部分

原文地址: http://www.cveoy.top/t/topic/V3Z 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录