C++实现输入正整数并按从大到小输出奇数
以下是一个用 C++ 编写的程序,用于输入一个整数 `n` 和 `n` 个正整数,然后将其中的奇数按照从大到小的顺序输出: ```cpp #include <iostream> #include <vector> #include <algorithm> int main() { int n; std::cin >> n; std::vector<int> oddNumbers; for (int i = 0; i < n; ++i) { int num; std::cin >> num; if (num % 2 != 0) { oddNumbers.push_back(num); } } std::sort(oddNumbers.begin(), oddNumbers.end(), std::greater<int>()); for (int num : oddNumbers) { std::cout << num << " "; } return 0; } ``` ### 代码解释 1. **输入处理**: - 首先,程序读取一个整数 `n`,表示接下来要输入的正整数的数量。 - 然后,使用一个 `for` 循环读取 `n` 个正整数。对于每个输入的整数,检查它是否为奇数(即 `num % 2 != 0`),如果是奇数,则将其添加到 `oddNumbers` 向量中。 2. **排序**: - 使用 `std::sort` 函数对 `oddNumbers` 向量进行排序。`std::greater<int>()` 作为比较函数,确保向量中的元素按从大到小的顺序排列。 3. **输出**: - 使用范围 `for` 循环遍历排序后的 `oddNumbers` 向量,并将每个奇数输出到控制台。 ### 进阶使用指南 - **性能优化**:如果输入的数字非常大,可以考虑使用更高效的排序算法,如快速排序或堆排序。 - **错误处理**:可以添加输入验证,确保输入的 `n` 是一个正整数,并且输入的数字都是正整数。 - **扩展功能**:可以添加更多的功能,如统计奇数的数量、计算奇数的总和等。 - **安全建议**:在实际应用中,应避免使用未初始化的变量,确保输入的合法性,以防止缓冲区溢出等安全问题。 - **常见陷阱规避**:注意 `std::sort` 函数的时间复杂度为 $O(n log n)$,对于大规模数据可能会影响性能。 ### 技术栈推荐和学习资源 - **官方文档**:C++ 标准库的官方文档是学习 C++ 的重要资源,可以参考 [cppreference.com](https://cppreference.com)。 - **参考书籍**:《C++ Primer》是一本经典的 C++ 学习书籍,适合初学者和有一定基础的开发者。 - **典型应用场景**:该程序可以用于数据筛选和排序,例如在处理大量数据时,筛选出奇数并按特定顺序排列。 ### 开发建议 - **模块化设计**:将输入处理、排序和输出等功能封装成独立的函数,提高代码的可读性和可维护性。 - **注释**:在关键代码处添加注释,解释代码的功能和逻辑,方便自己和他人理解代码。 - **测试**:编写测试用例,验证程序的正确性,确保程序在各种输入情况下都能正常工作。 ######[AI写代码神器 | 764点数解答 | 2026-04-05 10:59:33]
- 使用位运算对黄金城原材料编号进行奇偶分类的C++程序(字节豆包 | 211点数解答 | 2026-02-28 20:38:57)27
- 超详细!整数奇偶与倍数判断代码解析及补全(字节豆包 | 462点数解答 | 2026-01-08 12:43:56)50
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)350
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)322
- 幼儿园小朋友学号奇偶分类:代码实现与详细解释(字节豆包 | 406点数解答 | 2025-11-26 19:39:05)62
- C++实现:输入整数判断奇偶性及是否为 5 或 4 的倍数(DeepSeek | 137点数解答 | 2026-01-04 19:15:44)43
- C++:判断输入整数奇偶性及是否为 4 或 5 的倍数(字节豆包 | 159点数解答 | 2026-01-17 19:02:05)46
- 判断南瓜总数能否拆分为两个奇数——奇偶性决定一切(阿里通义 | 785点数解答 | 2026-03-13 12:12:50)30
- C++代码:输入数字判断奇偶性及是否为 5 或 4 的倍数(字节豆包 | 409点数解答 | 2025-12-20 19:04:17)39
- C++实现九九乘法表输出及代码详细解释(字节豆包 | 412点数解答 | 2026-02-06 22:10:32)69
- iOS开发:手把手教你完整实现代理模式,含声明与实现步骤!(阿里通义 | 268点数解答 | 2023-11-08 00:39:55)258
- JavaScript 开发:用 Animation 实现自定义动画的简易教程 (阿里通义 | 333点数解答 | 2023-11-09 01:50:07)247