今天头有点晕,就是这个程序
public static void main(String args[]){
int[] a = {0,5,4,9,8,7,3,6,1,2};

int num = 0;
for(int i=0;i<a.length;i++){
for(int j=1;j<a.length-1;j++){
if(a[i]>a[j]){
a[i] = a[i];
a[j] = a[j];
}else{
num = a[j];

a[j] = a[i];

a[i] = num;

}
}
}

for(int i=0;i<a.length;i++){
System.out.print(a[i]);
}
}
为什么结果是9012345678
我想要结果是0123456789
没找到原因,大家帮看一下

解决方案 »

  1.   

    你的程序我改成这样
    for(int i=0;i<a.length;i++)
    for(int j=i+1;j<a.length;j++)出来是9876543210就是一种排序的办法,,,你原来那个,,比较乱
      

  2.   

    楼上谢谢了,应该是你那么写才对,可是对于双重for循环的运行我怎么有点晕啊,能不能详细解释一下先执行那个循环,再怎么循环的啊?
      

  3.   

    我把你的程序改成以下这样了:public static void main(String[] args) {
      int[] a = { 0, 5, 4, 9, 8, 7, 3, 6, 1, 2 };
      int num = 0;
      for (int i = 0; i < a.length - 1; i++) {
        for (int j = i + 1; j < a.length; j++) {
          if (a[i] > a[j]) {
            num = a[j];
            a[j] = a[i];
            a[i] = num;
          }
        }
      }
      for (int i = 0; i < a.length; i++) {
        System.out.print(a[i]);
      }
    }这是一个选择排序法,i=0 就是拿 a[0]=0 与后面的第 1 至第 9 位依次比较,当比较到的数字比当前的数字小时就交换位置,比如,当 i=1,j=2 时 a[i] 就是“5”,a[j] 就是“4”,“5”是比“4”大的,所以就交换他们的位置,就变成了 a[i] 为“4”、a[j]为“5”了,再用当前的 a[i]=4 与后面的数字再进行比较。直到全部完成。当要逆序时,前上面的 a[i]>a[j] 改成 a[i]<a[j] 就可以了。
      

  4.   

    public class gg {
    public static void main(String args[]){
    int[] a = {0,5,4,9,8,7,3,6,1,2}; int temp = 0;
    for(int i=0;i<a.length;i++){
    for(int j=i+1;j<a.length;j++){
    if(a[i]>a[j]){
    temp = a[j];
    a[j] = a[i];
    a[i] = temp;
    }
    }
    } for(int i=0;i<a.length;i++){
    System.out.print(a[i]);
    }
    }
    }
    很简单  这样就可以了
      

  5.   

    比方说你固定一个i=1然后j遍历一次0到9
    然后i++等于1,j就从1遍历到9
    。。
    。。
    一直i=8,j从8遍历到9
      

  6.   

    public class gg {
    public static void main(String args[]){
    int[] a = {0,5,4,9,8,7,3,6,1,2};int temp = 0;
    for(int i=0;i<a.length;i++){
         for(int j=0;j<a.length-1;j++){
               if(a[j]>a[j+1]){
                 temp = a[j];
                 a[j] = a[j+1];
                 a[j+1] = temp;
                 }
              }
        }for(int i=0;i<a.length;i++){
          System.out.print(a[i]);
          }
       }
    }