C++实现正整数奇偶分类输出及后两位颠倒的入门级代码解析
### 需求理解 你希望用 C++ 实现一个程序,对输入的正整数进行奇偶分类输出,同时将每个数的后两位数字颠倒,并且个位数不能为零。 ### 代码实现 ```cpp #include <iostream> #include <vector> // 颠倒后两位数字,且确保个位数不为零 int reverseLastTwoDigits(int num) { if (num < 10) { return num; } int lastDigit = num % 10; int secondLastDigit = (num / 10) % 10; if (lastDigit == 0) { return num; } return (num / 100) * 100 + lastDigit * 10 + secondLastDigit; } int main() { std::vector<int> oddNumbers; std::vector<int> evenNumbers; int num; while (std::cin >> num && num > 0) { int reversedNum = reverseLastTwoDigits(num); if (reversedNum % 2 == 0) { evenNumbers.push_back(reversedNum); } else { oddNumbers.push_back(reversedNum); } } std::cout << "Odd numbers: "; for (int odd : oddNumbers) { std::cout << odd << " "; } std::cout << std::endl; std::cout << "Even numbers: "; for (int even : evenNumbers) { std::cout << even << " "; } std::cout << std::endl; return 0; } ``` ### 代码解释 1. **`reverseLastTwoDigits` 函数**: - 该函数接受一个整数作为参数。 - 如果数字小于 10,直接返回该数字。 - 提取数字的最后一位和倒数第二位。 - 如果最后一位是 0,则直接返回原数字。 - 否则,将后两位数字颠倒并返回。 2. **`main` 函数**: - 定义两个向量 `oddNumbers` 和 `evenNumbers` 分别存储奇数和偶数。 - 使用 `while` 循环读取输入的正整数,直到输入结束或输入非正整数。 - 对每个输入的数字调用 `reverseLastTwoDigits` 函数进行处理。 - 根据处理后的数字的奇偶性将其添加到相应的向量中。 - 最后分别输出奇数和偶数。 ### 进阶使用指南 - **性能优化**:如果输入的数字非常大,可以考虑使用更高效的算法来处理后两位数字的颠倒。 - **错误处理**:当前代码假设输入的都是有效的正整数。可以添加输入验证,确保输入的是有效的正整数。 - **扩展功能**:可以添加更多的功能,如统计奇数和偶数的个数,或者对输出进行排序。 ### 技术栈推荐 - **学习资源**:C++ 官方文档(https://isocpp.org/)、《C++ Primer》。 - **典型应用场景**:数据处理、数字分析等。 ### 开发建议 - **代码复用**:将 `reverseLastTwoDigits` 函数封装成一个独立的模块,方便在其他项目中复用。 - **注释**:添加详细的注释,提高代码的可读性。 - **测试**:编写测试用例,确保代码的正确性。 ######[AI写代码神器 | 819点数解答 | 2026-03-15 01:57:24]
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)339
- Golang开发:解析JSON数据时数值默认类型及示例解析(百度文心 | 393点数解答 | 2023-11-09 18:13:06)269
- SQL Working Areas Sizing: Manual vs. Automatic Policy - A Comprehensive Analysis(阿里通义 | 530点数解答 | 2024-05-13 10:55:58)301
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)308
- 编程模拟:偶数张牌经 k 次洗牌后第 p 张牌编号求解(DeepSeek | 126点数解答 | 2026-01-05 12:15:30)28
- 用 JS 中 for 循环实现 1 到 100 相加并输出结果到页面的完整代码 ( | 240点数解答 | 2024-05-20 22:11:29)449
- 用 JS 的 while 循环实现 1 到 100 相加并输出到页面的代码揭秘( | 47点数解答 | 2024-05-20 22:16:48)352
- Python实现:输入正整数输出最高与最低比特十进制值(字节豆包 | 398点数解答 | 2026-01-23 19:47:50)39
- C++实现喵际数独锦标赛自动评判系统:快速验证数独解答正确性(字节豆包 | 666点数解答 | 2025-05-16 16:46:31)168
- Python 实现:计算 1 到 n 区间内所有奇数之和(字节豆包 | 111点数解答 | 2025-12-07 15:31:15)29
- Python 实现:计算 1 到 n 区间内所有奇数之和(字节豆包 | 135点数解答 | 2025-12-13 20:02:13)20
- Pascal编程:求m值、矩阵旋转与高精度计算π值的实现(DeepSeek | 953点数解答 | 2025-12-15 12:26:36)45