You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java实现数组求最小值功能输出错误结果的原因排查

问题根因

  • 数组初始化时多分配了1个无效空间:int[] marks = new int[n + 1];,Java中int类型数组的未手动赋值元素会被默认初始化为0
  • 后续计算最值的循环遍历了数组全部长度的元素,包含了最后一个未输入值、默认是0的多余位置,因此统计得到的最小值不符合预期。

修复方案

任选以下一种方案修改即可:

方案1:调整数组容量适配实际输入长度

将数组声明代码修改为:

// 去掉多余的+1,数组容量和输入的元素数量完全一致
int[] marks = new int[n];

同时将打印数组的循环边界调整为:

for (int j = 0; j < marks.length; j++)

后续最值统计逻辑无需修改。

方案2:调整最值遍历边界,只遍历有效输入元素

如果有特殊逻辑需要保留n+1的数组长度,只需将计算最值的循环边界修改为:

// 仅遍历前n个已经手动赋值的有效元素
for (int i = 0; i < n; i++)

即可排除掉最后一位默认值0的干扰。

内容的提问来源于stack exchange,提问作者Shubham Guha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 04:45:03