自己编写的代码如下,有一个问题是排序不成功有条件的测试下,
帮小弟看下什么问题,谢谢各位了。package test;
import java.util.*;public class MaoPao{
public static void main(String[] args){
        Scanner input = new Scanner(System.in);
        System.out.println("请您输入要排序的数组的个数");
        int geshu = input.nextInt();
        int[] a = new int[geshu];
        for(int i=0;i<a.length;i++){
         System.out.println("请您输入数组中第"+(i+1)+"个数");
         a[i]=input.nextInt();
        }      for(int i=0;i<a.length-1;i++){
        for(int j=0;j<a.length-i-1;j++){
        if(a[j]>a[j+1]){
        int temp=0;
        a[j]=temp;
        a[j+1]=a[j];
        a[j+1]=temp;
        }
        }
       }
       for(int i=0;i<a.length;i++){
        System.out.println("排序后数组的序列为"+a[i]);
       }
}
}

解决方案 »

  1.   


     int temp=0;
                       temp=a[j];
                       a[j]=a[j+1];
                       a[j+1]=temp;
      

  2.   

    其实你仔细看就能发现 
    int temp=0; a[j]=temp; 造成都变成0了
      

  3.   

    问题解决了大哥。。for(int i=0;i<a.length-1;i++){
               for(int j=0;j<a.length-i-1;j++){
                   if(a[j]>a[j+1]){
                       int temp=0;
                       a[j]=temp;
                       a[j+1]=a[j];
                       a[j+1]=temp;
                   }
               }
           }
    for循环出了问题啊。看这句代码:int temp=0;a[j]=temp;  每次都是先把0赋值给了a[j],这样排序之后当然是前面都是0,只有最后一个才是你输入的数啊。。for循环代码修改如下:、
                     if(a[j]>a[j+1]){
                       int temp=0;
                       temp=a[j];
                       a[j]=a[j+1];
                       a[j+1]=temp;
                   }
    OK。就这样了。