Java排序错误 公共类主{ 公共静态void main(字符串[]args){ intz; int[]a=新的int[5]; a[0]=4; a[1]=8; a[2]=5; a[3]=1; a[4]=3; 对于(;;){ z=0; 对于(int i=1;ia[i]){ int tmp=a[i]; a[i-1]=a[i]; a[i]=tmp; z++; } } 如果(z==0){ 打破 } } 对于(int i=0;i

Java排序错误 公共类主{ 公共静态void main(字符串[]args){ intz; int[]a=新的int[5]; a[0]=4; a[1]=8; a[2]=5; a[3]=1; a[4]=3; 对于(;;){ z=0; 对于(int i=1;ia[i]){ int tmp=a[i]; a[i-1]=a[i]; a[i]=tmp; z++; } } 如果(z==0){ 打破 } } 对于(int i=0;i,java,Java,您覆盖了[i-1]的值,因此您丢失了它 所以你只需要改变这个int-tmp=a[i];用这个int-tmp=a[i-1]; 整个代码是: 公共类邮件客户端{ public class Main { public static void main(String[] args) { int z; int [] a = new int[5]; a[0]=4; a[1]=8; a[2]=5; a[3]=1; a[4]=3;

您覆盖了[i-1]的值,因此您丢失了它
所以你只需要改变这个int-tmp=a[i];用这个int-tmp=a[i-1]; 整个代码是:

公共类邮件客户端{

public class Main {

    public static void main(String[] args) {
    int z;
        int [] a = new int[5];
    a[0]=4;
    a[1]=8;
    a[2]=5;
    a[3]=1;
    a[4]=3;
    for(;;){
        z=0;
    for(int i=1;i<a.length;i++){

    if(a[i-1]>a[i]){
        int tmp = a[i];
        a[i-1]=a[i];
        a[i]=tmp;
        z++;

    }

    }
    if(z==0){
        break;
    }

    }
    for(int i=0;i<a.length;i++)
    {
        System.out.println(a[i]);
    }
}}
publicstaticvoidmain(字符串[]args){
intz;
int[]a=新的int[5];
a[0]=4;
a[1]=8;
a[2]=5;
a[3]=1;
a[4]=3;
对于(;;){
z=0;
对于(int i=1;ia[i]){
int tmp=a[i-1];
a[i-1]=a[i];
a[i]=tmp;
z++;
}
}
如果(z==0){
打破
}
}

对于(int i=0;i安装一个调试器并遍历代码-这是您能够从这次体验中学习的唯一方法。我郑重推荐。有人将答案推给您将剥夺您的机会。但我认为我的代码是正确的,并且不必出错(((仔细查看代码以交换数组的两个元素。不要想,自己调试它,并确保像任何其他专业人员一样,只需谷歌“[name of your IDE]debugging”,然后使用该工具逐行遍历代码。无法理解下一票。虽然答案很差,但似乎是正确的
public static void main(String[] args) {
    int z;
        int [] a = new int[5];
    a[0]=4;
    a[1]=8;
    a[2]=5;
    a[3]=1;
    a[4]=3;
    for(;;){
        z=0;
    for(int i=1;i<a.length;i++){

    if(a[i-1]>a[i]){
        int tmp = a[i-1];
        a[i-1]=a[i];
        a[i]=tmp;
        z++;

    }

    }
    if(z==0){
        break;
    }

    }
    for(int i=0;i<a.length;i++)
    {
        System.out.println(a[i]);
    }
}