public class A {
    /** Creates a new instance of A */
    public A() {
        
    }
    public static void main(String args[])
    {  
        for(int i=0;i<10;i++)
        {
             int a[] = Integer.parseInt(args[i]); //什么错误?
            for(int j=1;j<=9;j++){
                    if(a[i]>a[i+1])
                    {
                 int  t=a[i];
                 a[i]=a[i+1];
                 a[i+1]=t;
                    }
            }
            System.out.println(a[i]);
        }
    }   
}
十个数用命令行参数 排列大小,上面程序该如何改正

解决方案 »

  1.   

    public class A {
        /** Creates a new instance of A */
        public A() {
            
        }
        public static void main(String args[])
        {  int a[] = new int[10];
            for(int i=0;i<10;i++)
            {
                a[i]  = Integer.parseInt(args[i]); //什么错误?
                for(int j=1;j<=9;j++){
                        if(a[i]>a[i+1])
                        {
                     int  t=a[i];
                     a[i]=a[i+1];
                     a[i+1]=t;
                        }
                }
                System.out.println(a[i]);
            }
        }   
    }
      

  2.   

    看不懂lz的算法,我照你的执行,输出的是全部0来的
    下面的一个算法,是经典的冒泡排序
    public class A
    {   public A() {}
        public static void main(String args[])
        {  int[] a=new int[10];
            for(int i=0;i<10;i++)
             {  a[i]=Integer.parseInt(args[i]);
             }
            for(int i=0;i<10;i++)
             {  for(int j=0;j<9-i;j++)
                 {  if(a[j]>=a[j+1])
                      {  int t=a[j];
                         a[j]=a[j+1];
                         a[j+1]=t;
                      }
                 }
             }
            for(int i=0;i<10;i++)
             {  System.out.print(a[i]+"  ");
             }    }   
    }
      

  3.   

    public class A {
        /** Creates a new instance of A */
        public A() {
            
        }
        public static void main(String args[])
        {  
         int a[]=new int[10];
            for(int i=0;i<a.length;i++)
            {
                 a[i] = Integer.parseInt(args[i]);
            }
            for(int i=0;i<a.length-1;i++)
            {
                for(int j=0;j<a.length-1-i;j++)
                {
                 if(a[j]>a[j+1])
                    {
                    int  t=a[j];
                    a[j]=a[j+1];
                    a[j+1]=t;
                    }
                }
            }
            for(int i=0;i<a.length;i++)
            {
             System.out.println(a[i]);
            }
        }   
    }
    楼主请注意了:如果你想从命令行输入十个数并将其排序,请务必按以下步骤进行,先获取这十个数并将其赋予数组a[],然后对数组进行冒泡排序(两两比较,每循环一次后将得到最大数,并将其放在最右边,当进入第二次循环(外层循环)时,并不需要将前面比较得出的最大数进行排序了,以此类推),最后进行循环打印.
    具体的还得楼主自己体会,在此我也不讲那么详细了!
      

  4.   

    Arrays.sort(int a[]); 好像是这个方法来,支持楼上的楼上的楼上的楼上