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

C++ 排序后同位置取最大值实现(橙色闪点密码破解题解)

根据题目要求,我们需要将奇数和偶数分别从小到大排序,然后在每个位置上比较奇数与偶数对应位置的数值,取较大者输出。题目明确要求使用 `sort` 和 `max` 函数。 --- ## 🛠️ 解题思路 1. **输入读取**:读取整数 `n`,随后依次读取 `n` 个奇数存到数组 `odd`,再读取 `n` 个偶数存到数组 `even`。 2. **排序**:分别对 `odd` 和 `even` 数组使用 `sort` 函数(默认升序)。 3. **逐位比较**:遍历索引 `i` 从 `0` 到 `n-1`,对 `odd[i]` 与 `even[i]` 调用 `max` 函数,得到该位置的最大值。 4. **输出**:按序输出结果,数字间用空格分隔。 --- ## 💻 完整 C++ 代码(使用 max 和 sort) ```cpp #include <iostream> #include <algorithm> // 提供 sort 和 max using namespace std; int main() { int n; cin >> n; int odd[100], even[100]; // 根据 n < 100 定义足够大的数组 // 输入 n 个奇数 for (int i = 0; i < n; i++) { cin >> odd[i]; } // 输入 n 个偶数 for (int i = 0; i < n; i++) { cin >> even[i]; } // 分别排序 sort(odd, odd + n); sort(even, even + n); // 逐位比较并输出最大值 for (int i = 0; i < n; i++) { int result = max(odd[i], even[i]); if (i > 0) { cout << " "; // 数字间用空格分隔 } cout << result; } cout << endl; return 0; } ``` --- ## 📝 代码说明 - **`sort(odd, odd + n)`**:对数组区间 `[odd, odd+n)` 进行升序排序。这里 `odd` 是数组首地址,`odd+n` 是尾后地址。 - **`max(odd[i], even[i])`**:标准库函数,返回两个整数中较大的一个。 - **数组大小**:题目限定 `1 < n < 100`,因此 `odd[100]` 和 `even[100]` 足够使用。若希望更安全,可以用 `vector<int>`,但题目建议使用两个数组,这里按题目要求实现。 - **输出控制**:避免多余空格,采用先判断 `i > 0` 再输出空格的方式。 --- ## ⚠️ 注意事项 - 必须包含 `<algorithm>` 头文件,否则 `sort` 和 `max` 都无法使用。 - 输入数据保证奇数、偶数数量均为 `n`,不需要额外处理。 - 排序后数组已经按升序排列,因此第 `i` 个位置对应的是排序后的第 `i` 个奇数/偶数,符合题意。 --- ## 🔍 样例验证 **样例1**: - 输入: ``` 4 1 13 3 9 4 8 2 10 ``` - 排序后:奇数 `[1, 3, 9, 13]`,偶数 `[2, 4, 8, 10]` - 逐位比较:`max(1,2)=2`,`max(3,4)=4`,`max(9,8)=9`,`max(13,10)=13` - 输出:`2 4 9 13` ✅ **样例2**: - 输入: ``` 3 9 5 3 2 8 10 ``` - 排序后:奇数 `[3, 5, 9]`,偶数 `[2, 8, 10]` - 逐位比较:`max(3,2)=3`,`max(5,8)=8`,`max(9,10)=10` - 输出:`3 8 10` ✅ --- ## 🚀 扩展建议 - 如果 `n` 较大(如百万级),建议改用 `vector<int>` 和 `std::sort`,避免固定数组的栈溢出风险。 - 本解法时间复杂度为 **O(n log n)**(排序主导),空间复杂度为 **O(1)**(不计算输入存储)。 - 练习时可用 `#include <bits/stdc++.h>` 代替多个头文件,但正式竞赛中建议显式包含所需头文件以提升编译效率。 ######[AI写代码神器 | 1071点数解答 | 2026-08-21 21:55:42]

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