C++代码数组越界错误分析与修正:巧妙使用 std::min 避免风险
这段代码存在逻辑错误。 `for (int i = 0; i < 5; ++i)` 假设 `n` 至少为 5,但题目未保证这一点。 如果 `n < 5`,访问 `times[i]` 会导致数组越界。 修改建议: 1. 检查 `n` 是否小于 5,若小于则只累加前 `n` 个元素。 2. 使用 `std::min(5, n)` 控制循环次数。 修正后的代码: ```cpp #include <iostream> #include <vector> #include <algorithm> int main() { int n; std::cin >> n; std::vector<int> times(n); for (int i = 0; i < n; ++i) { std::cin >> times[i]; } std::sort(times.begin(), times.end()); int total = 0; int limit = std::min(5, n); for (int i = 0; i < limit; ++i) { total += times[i]; } std::cout << total << std::endl; return 0; } ``` ######[AI问答 | 263点数解答 | 2026-01-17 10:23:32]
相关提问
- C语言实现:求数组最小值及其首现位置,附额外逻辑考量(字节豆包 | 209点数解答 | 2024-12-12 18:13:00)217
- C++与C语言代码:文章中查找单词次数及位置的问题分析与改进方案(字节豆包 | 1381点数解答 | 2025-12-15 17:32:28)46
- 揭秘高效快速排序:从代码实现到原理剖析(讯飞星火 | 710点数解答 | 2024-11-14 10:44:25)365
- 快速掌握 C++ 快速排序:含代码详解与实现(阿里通义 | 951点数解答 | 2024-11-14 10:46:29)336
- 快速排序代码大揭秘:从随机数组生成到高效排序实现(字节豆包 | 472点数解答 | 2024-11-14 10:51:44)331
- C++代码:随机数组生成与堆排序待实现揭秘(字节豆包 | 417点数解答 | 2024-11-28 11:20:23)384
- C++ 堆排序代码详解:从随机数生成到数组排序全流程(字节豆包 | 684点数解答 | 2024-11-28 11:21:15)334
- 修复 C++ 代码错误:实现随机数组生成与插入排序(阿里通义 | 690点数解答 | 2024-10-31 10:11:20)339
- C++ 随机数组生成与插入排序实现:原序列到新序列的变换(字节豆包 | 147点数解答 | 2024-10-31 10:29:38)344
- C++ 随机数组生成与插入排序算法的代码修正与实现(讯飞星火 | 703点数解答 | 2024-10-31 10:35:24)325
- C++:随机数组生成与希尔排序代码的修正与实现(阿里通义 | 593点数解答 | 2024-10-31 10:39:07)364
- C++ 实现希尔排序:将随机序列排序的超详细代码解析(字节豆包 | 407点数解答 | 2024-10-31 11:04:08)314