C++实现正整数奇偶分类输出及后两位颠倒的入门级代码解析
### 📋需求理解 要使用 C++ 编写程序,实现对正整数进行奇偶分类输出。对于输出的数,需要将其后两位数字颠倒,并且个位数不能为 0,数字 7 不参与输出。 ### 💻代码实现 ```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 || num == 7) return -1; // 个位数为 0 或者数字为 7 时返回 -1 return (num / 100) * 100 + lastDigit * 10 + secondLastDigit; } // 函数用于分类输出 void classifyAndPrint(const std::vector<int>& numbers) { std::vector<int> oddNumbers; std::vector<int> evenNumbers; for (int num : numbers) { int newNum = reverseLastTwoDigits(num); if (newNum != -1) { if (newNum % 2 == 0) { evenNumbers.push_back(newNum); } else { oddNumbers.push_back(newNum); } } } std::cout << "奇数: "; for (int num : oddNumbers) { std::cout << num << " "; } std::cout << std::endl; std::cout << "偶数: "; for (int num : evenNumbers) { std::cout << num << " "; } std::cout << std::endl; } int main() { std::vector<int> numbers = {12, 23, 34, 7, 45, 50, 66}; classifyAndPrint(numbers); return 0; } ``` ### 📝代码解释 1. **`reverseLastTwoDigits` 函数**: - 该函数用于颠倒一个正整数的后两位数字。 - 首先判断数字是否小于 10,如果是则直接返回该数字。 - 接着获取个位和十位数字,若个位数为 0 或者数字为 7,则返回 -1。 - 最后返回颠倒后两位数字后的新数。 2. **`classifyAndPrint` 函数**: - 该函数用于对输入的数字向量进行奇偶分类输出。 - 遍历输入的数字向量,调用 `reverseLastTwoDigits` 函数处理每个数字。 - 根据处理后的数字的奇偶性,将其分别存入奇数向量和偶数向量中。 - 最后分别输出奇数向量和偶数向量中的数字。 3. **`main` 函数**: - 定义一个包含正整数的向量 `numbers`。 - 调用 `classifyAndPrint` 函数对这些数字进行分类输出。 ### ⚙️进阶使用指南 - **性能优化**:如果输入的数字向量非常大,可以考虑使用并行计算来提高分类的速度。 - **错误处理**:当前代码假设输入的都是正整数,如果输入可能包含负数或非数字字符,需要添加相应的输入验证逻辑。 - **扩展功能**:可以添加更多的分类规则,例如按照数字的大小进行分类。 ### 📚学习资源 - [C++ 官方文档](https://en.cppreference.com/w/):提供了 C++ 语言的详细文档和参考资料。 - 《C++ Primer》:一本经典的 C++ 入门书籍,适合初学者学习。 ### 💡开发建议 - 编写代码前,先明确需求,将大问题分解为小问题,逐个解决。 - 对于复杂的逻辑,可以先编写测试用例,确保代码的正确性。 - 代码中添加适当的注释,提高代码的可读性。 ######[AI写代码神器 | 946点数解答 | 2026-03-15 01:59:13]
- 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