酷代码 AI
菜单
服务商

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]

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