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

Java用户输入整数冒泡排序异常:输出全为0和1求解决

问题解决:Java冒泡排序返回0和1而非排序结果

你的代码存在两处关键错误,导致无法正确实现输入收集和冒泡排序:

错误1:未正确存储用户输入

在输入循环中,你调用了sc.nextInt()但没有将返回值赋值给数组元素,反而执行myArr[i] ++。由于Java中int数组默认初始值为0,每次++后元素值变为1,最终数组全为1,自然输出结果不符合预期。

错误2:冒泡排序未标记交换状态

在冒泡排序的交换逻辑中,交换元素后没有将isSwapped设为true,导致do-while循环只会执行一次,无法完成完整的排序过程。

修正后的完整代码

import java.util.*; 
public class task2Q3
{
    public static void main (String []args)
    {
        Scanner sc= new Scanner(System.in);
        sc.useDelimiter("\n");

        int [] myArr= new int[15];  

        // 询问用户每天使用平板的时长
        for(int i=0; i<myArr.length; i++)
        {
            System.out.println("Enter the amount of time you spend on the tablet daily " + i);
            // 将输入值赋值给数组元素
            myArr[i] = sc.nextInt();
        }
        bubbleSort(myArr);
        for(int i=0; i<myArr.length; i++)
        {
            System.out.println(myArr[i]);
        }
    }

    public static void bubbleSort(int[] tms)
    {
        boolean isSwapped= false;
        do{
            isSwapped= false;
            for(int i=0; i<tms.length-1; i++)
            {
                if(tms[i]>tms[i+1])
                {
                    int tmp= tms[i];
                    tms[i]= tms[i+1];
                    tms[i+1]= tmp;
                    // 标记发生了交换
                    isSwapped = true;
                }
            }
        }while(isSwapped);
    } 
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 04:57:43