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

Java数组最大元素与首元素交换时首元素置换失败问题求助

问题原因

你的代码仅记录了数组最大值的数值,没有保存最大值所在的下标位置,当前逻辑只是把数组首元素直接覆盖为最大值,没有修改原最大值所在的数组位置,自然无法完成两个元素的交换。

修复后的代码

import java.util.*;

public class arrayTest
{
    public static void main (String[] args)
    {
        int bb[] = { -9, 55, 10002, -222, 45, -1, 926, 100, -100 };
        int i, temp;
        int bbLen = bb.length;
        
        System.out.println ("Before: " + Arrays.toString(bb));
       
        int large = bb[0];
        int maxIndex = 0; // 新增变量存储最大值对应的下标
        for (i = 0; i < bbLen; i++)
        {
            if (large < bb[i]) {
                large = bb[i];
                maxIndex = i; // 匹配到更大值时同步更新下标
            }
        }
        // 交换首位置元素和最大值所在位置的元素
        temp = bb[0];
        bb[0] = large;
        bb[maxIndex] = temp;
      
        System.out.println ("After:  " + Arrays.toString(bb));
    }
}

运行结果

Before: [-9, 55, 10002, -222, 45, -1, 926, 100, -100]
After:  [10002, 55, -9, -222, 45, -1, 926, 100, -100]

内容的提问来源于stack exchange,提问作者Spencer Colón

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 01:45:04