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

Java入门:冒泡排序成绩数组后如何同步对应课程数组?

解决课程与成绩数组同步排序的问题

你当前的核心问题是:只对成绩数组Grade做了交换排序,但完全没动课程数组Course,导致排序后的成绩和原位置的课程对应不上。要解决这个问题,必须在交换成绩元素的同时,同步交换课程数组中对应位置的元素。

修改后的代码

for (int i = 0; i < Grade.length; i++) {
    for (int j = i + 1; j < Grade.length; j++) {
        // 定义对应类型的临时变量,暂存要交换的值
        double tmpGrade = 0;
        String tmpCourse = "";
        // 按成绩从高到低比较
        if (Grade[i] < Grade[j]) {
            // 交换成绩数组的元素
            tmpGrade = Grade[i];
            Grade[i] = Grade[j];
            Grade[j] = tmpGrade;
            // 同步交换课程数组对应位置的元素
            tmpCourse = Course[i];
            Course[i] = Course[j];
            Course[j] = tmpCourse;
        }
    }
    // 此时成绩和课程已经一一对应
    System.out.println(Grade[i] + "------------" + Course[i]);
}

关键调整点

  1. 修正临时变量类型:你之前用int tmp存储double类型的成绩,会导致精度丢失,改成double tmpGrade匹配成绩数组类型。
  2. 同步交换课程:每次交换成绩的同时,用tmpCourse暂存课程名称,交换对应位置的课程元素,保证两个数组的索引始终对应同一组课程和成绩。
  3. 用数组长度代替硬编码:把循环条件里的20改成Grade.length,这样不管数组实际长度是多少,代码都能正常运行,避免数组越界。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 01:35:45