下面程序从命令行参数中读入数值并从小到大排序!
可是运算的结果怎么也不对,大家帮忙试验下,多谢!public class Test{
     public static void main(String[] args){
       int[] num = new int[args.length];
       for(int i=0; i<args.length; i++) 
           num[i]=Integer.parseInt(args[i]);
            
        for(int i=0; i<num.length; i++) 
           for(int j=i+1; j<num.length; j++) 
                 if(num[i]>num[j]) {
                        int temp = num[i];
                        num[j] = temp;
                        num[i] = num[j];
                }
          
         for(int i=0;i<num.length;i++) {
           System.out.print(num[i]+" ");
        }
    }
}
例如输入java Test 4 5 1 3 4
  结果: 4 5 5 5 5

解决方案 »

  1.   

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

  2.   

    if(num[i]>num[j]) { 
                            int temp = num[i]; 
                            num[j] = temp; 
                            num[i] = num[j]; 
    改为:           if(num[j+1]>num[j]) { 
                            int temp = num[j]; 
                            num[j] = num[j+1]; 
                            num[j+1] = temp; 从大到小排序。
      

  3.   

    public class Test{ 
        public static void main(String[] args){ 
          int[] num = new int[args.length]; 
          for(int i=0; i <args.length; i++) 
              num[i]=Integer.parseInt(args[i]); 
                
            for(int i=0; i <num.length; i++) 
              for(int j=i+1; j <num.length; j++) 
                    if(num[j+1]>num[j]) { 
                            int temp = num[j]; 
                            num[j] = num[j+1]; 
                            num[j+1] = temp; 
                    } 
              
            for(int i=0;i <num.length;i++) { 
              System.out.print(num[i]+" "); 
            } 
        } 

    运行试试看,应该没问题的