酷代码 AI
菜单
服务商

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; std::cout << "请输入正整数(输入 -1 结束输入):" << std::endl; while (std::cin >> num && num != -1) { if (num <= 0) { std::cout << "输入的数字必须是正整数,请重新输入。" << std::endl; continue; } int reversedNum = reverseLastTwoDigits(num); if (reversedNum % 2 == 0) { evenNumbers.push_back(reversedNum); } else { oddNumbers.push_back(reversedNum); } } std::cout << "奇数:"; for (int odd : oddNumbers) { std::cout << odd << " "; } std::cout << std::endl; std::cout << "偶数:"; for (int even : evenNumbers) { std::cout << even << " "; } std::cout << std::endl; return 0; } ``` ### 代码解释 1. **`reverseLastTwoDigits` 函数**: - 该函数用于颠倒一个整数的后两位数字。 - 如果数字小于 10,直接返回该数字。 - 提取最后一位和倒数第二位数字。 - 如果最后一位数字为 0,则不进行颠倒,直接返回原数字。 - 否则,将后两位数字颠倒并返回。 2. **`main` 函数**: - 定义两个向量 `oddNumbers` 和 `evenNumbers` 分别存储奇数和偶数。 - 提示用户输入正整数,输入 -1 结束输入。 - 对于每个输入的正整数,调用 `reverseLastTwoDigits` 函数进行处理。 - 根据处理后的数字的奇偶性,将其添加到相应的向量中。 - 最后分别输出奇数和偶数。 ### 进阶使用指南 - **性能优化**:如果输入的数字非常大,可以考虑使用更高效的算法来处理数字的颠倒。 - **错误处理**:当前代码已经对输入的非正整数进行了简单的错误处理,但可以进一步完善,例如处理输入非数字的情况。 - **扩展功能**:可以添加更多的功能,如统计奇数和偶数的个数,或者对输出进行排序。 - **安全建议**:在实际应用中,需要考虑输入的数字可能超出整数范围的情况,可以使用 `long long` 类型来处理更大的数字。 - **常见陷阱规避**:注意处理个位数为零的情况,避免颠倒后出现不合理的结果。 ### 相关技术栈推荐 - **C++ 标准库**:C++ 标准库提供了丰富的容器和算法,可以帮助我们更高效地处理数据。 - **STL 容器**:如 `vector`、`list` 等,可以方便地存储和管理数据。 ### 学习资源链接 - [C++ 官方文档](https://en.cppreference.com/w/) - 《C++ Primer》:经典的 C++ 学习书籍。 ### 开发建议 - 注重代码的可读性和可维护性,添加必要的注释。 - 进行充分的测试,确保代码在各种情况下都能正常工作。 - 学习和掌握 C++ 的标准库和常用算法,提高编程效率。 ######[AI写代码神器 | 1017点数解答 | 2026-03-15 01:53:31]

相关提问
本站限时免费提问中
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]