酷代码 AI
菜单
服务商
DeepSeek字节豆包
更多选项

C++ 实现奇数筛选与降序输出

根据题目要求,需要从输入的 n 个正整数中筛选出奇数,并按从大到小排序输出。以下是 C++ 实现代码,包含详细注释。 ```cpp #include <iostream> #include <vector> #include <algorithm> using namespace std; int main() { int n; cin >> n; // 读取数字个数 vector<int> odds; // 存储奇数的容器 int num; // 读取 n 个正整数,筛选奇数 for (int i = 0; i < n; i++) { cin >> num; if (num % 2 != 0) { // 判断是否为奇数 odds.push_back(num); } } // 从大到小排序 sort(odds.begin(), odds.end(), greater<int>()); // 输出奇数,空格分隔 for (size_t i = 0; i < odds.size(); i++) { if (i > 0) cout << " "; cout << odds[i]; } cout << endl; return 0; } ``` ### 代码说明 - 使用 `vector<int>` 动态存储所有奇数。 - 通过 `num % 2 != 0` 判断奇数(负奇数也可能出现,但题目明确是正整数)。 - 利用 `sort` 配合 `greater<int>()` 实现降序排列。 - 输出时控制空格,避免多余空格或换行问题。 ### 示例运行 输入: ``` 6 3 8 5 12 7 4 ``` 输出: ``` 7 5 3 ``` ### 复杂度分析 - 时间复杂度:O(n log n)(排序主导) - 空间复杂度:O(n)(存储奇数) ######[AI问答 | 391点数解答 | 2026-08-20 21:59:20]

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