显示反转阵列? java的

时间:2014-10-13 05:17:21

标签: java arrays reverse

打印 翻转方法(仅打印9到5)但我希望它从9打印到0     http://imgur.com/gggiJwn       public static void flip(int [] flp){          System.out.println(“这是翻转方法”);

     for ( int i = 0;  i < flp.length; i++){
     int e = flp.length-1;
     int temp = flp[e-i];
     flp[i] = flp[e-i];
     flp[i] = temp;
      e--;
     System.out.println("Index"+(i)+" :"+flp[i]); //is this the problem?

   }

    }
}

5 个答案:

答案 0 :(得分:0)

问题在于您正在打印一半元素

i < flp.length/2

那应该是

i < flp.length

答案 1 :(得分:0)

您的for循环打印9到5,因为这是您将循环配置为迭代到i < flp.length/2的方式。

将其更改为:

i < flp.length

来自

i < flp.length/2

答案 2 :(得分:0)

您需要将逻辑更改为以下以反转完整数组

 public static void flip(int[] flp){
 System.out.println("This is the flip method");
 for ( int i = 0;  i < flp.length/2; i++){
     int e = flp.length-(1+i);
     int temp = flp[i];
     flp[i] = flp[e];
     flp[e] = temp;
    // remove print from here. else you will get half of the array
    // since flp.length/2
   }
}

在单独的方法中添加它。

 for(int i = 0;  i < flp.length; i++){
   System.out.println("Index"+(i)+" :"+flp[i]);
 }

答案 3 :(得分:0)

实际上,你的for循环很好 - 但是你应该从那个循环内部删除打印,并在翻转循环之后将它放在一个单独的循环中

 for ( int i = 0;  i < flp.length; i++){
   System.out.println("Index"+(i)+" :"+flp[i]);
 }

答案 4 :(得分:0)

public static void flip(int[] flp) {
    System.out.println("This is the flip method");

    int e = flp.length - 1;
    for (int i = 0; i < flp.length / 2; i++) {

        int temp = flp[i];
        flp[i] = flp[e];
        flp[e] = temp;
        e--;

    }

    for (int i = 0; i < flp.length; i++) {
        System.out.println("Index" + (i) + " :" + flp[i]); 
    }
}