public class compositor{
public static void main(String[] args){
int[] a={1,2,3,4,5};
int[] b=new int[5];
for(int i=0;i<5;i++){
b[i]=a[5-i];
a=b;
}
for(int i=0;i<5;i++){
System.out.print(b[i]+" ");
}
}
}这样错了?
应该怎么排

解决方案 »

  1.   

    for(int i=0;i <5;i++){ 
    b[i]=a[5-i]; 
    a=b; 
    }  b[i]=a[5-i];  这条语句不是已经赋完值了吗  为什么还写  a=b;我是初学者,望见谅
      

  2.   

    楼主这个程序应该会报错吧,i=0的时候, a[5-i]就是取a[5],而数组是以0开头的,所以最多取到a[4]啊。就算法而言,楼主的的确没有问题啊,就是那个a = b,不知道干吗的,貌似多余。
            int a[] = {1,2,3,4,5};
    int[] b = new int[5];

    for(int i=0;i<a.length;i++){
    b[i] = a[a.length-i-1];
    }

    System.out.println(Arrays.toString(b));运行结果:[5, 4, 3, 2, 1]实现了啊
      

  3.   

    楼上正解。我自己修改楼主的。
    楼主两个地方是错的,一个是数组下标的最大值,如楼上说的。
    另外一个是a=b是多余的。package test1;
    public class Test6

    public static void main(String[] args)

    int[] a={1,2,3,4,5}; 
    int[] b=new int[5]; 
    //for(int i=0;i <5;i++)
    for(int i=0;i <a.length;i++)

    b[i]=a[a.length-1-i]; 
     

    for(int i=0;i <b.length;i++)

    System.out.print(b[i]+" "); 


      

  4.   

    楼主将5改成4就可,把a=b注释掉。
    public class compositor

      public static void main(String[] args)
      { 
    int[] a={1,2,3,4,5}; 
    int[] b=new int[5]; 
    for(int i=0;i <5;i++)
      { 
       b[i]=a[4-i]; 
    //a=b; 
       } 
    for(int i=0;i <5;i++)
      { 
    System.out.print(a[i]+" "); 
      }
    //System.out.println("*********");
      for(int i=0;i <5;i++)
        {
         System.out.print(b[i]+" "); 
        } 
      }

      

  5.   


    /**
     * kimi
     */package test;import java.util.Arrays;/**
     * @author kimi
     * 
     */
    public class TestCsdn {    /**
         * @param args
         */
        public static void main(String[] args) {
            int[] i1 = {1, 3, 4, 2, 5};
            int[] intArray = new int[5];
            Arrays.sort(i1);//多了个对i1数组的排序!
            for (int i = 0; i < i1.length; i++) {
                intArray[i] = i1[i1.length - i - 1];
            }      
        }
    }
      

  6.   

    public class ReserveArray
    {
    public int [] resArray(int a[])
    {
    int i;
    int j=a.length;
    System.out.println(j);
    int []b = new int[j] ;
    System.out.print("输入的数组");
    for(i=0;i<a.length;i++)
    {
    System.out.print(a[i]+",");
    }
    System.out.println("\n"+"  开始置换");
    for (i=0,j=a.length-1;i<a.length;i++,j--)
    {
    System.out.println("j="+j+",i="+i);
    System.out.println(a[i]);
    b[j]= a[i];
    }
    System.out.print("置换后的数组");
    for(j=0;j<b.length;j++)
    {
    System.out.print(b[j]+",");
    }
    return b;
    }
    public static void main(String [] args)
    {
    ReserveArray reserArray = new ReserveArray();
    int a[]={1,2,3};
    reserArray.resArray(a);
    }
    }
    以上代码在jdk6中进行过测试。