我知道这个问题已经用其他语言(包括Java本身)问过了。


我只想澄清一下,我知道如何反转数组,但是如果有任何解决方案,我希望提供帮助。
因此,请勿将其标记为重复项。


import java.util.Scanner;
class TestClass {
public static void main(String args[] ) throws Exception {
    /*
         Code for User input
    */

    /* The problem was with the Swapping Code below */
    for(int i=0; i<=n/2; i++)
        swap(i,n-i-1,a);

  /* Output Code. */

    }
/*Swap function*/
public static void swap(int x, int y, int[] arr){
    int temp = arr[x];
    arr[x] = arr[y];
    arr[y] = temp;
}

}


我已经根据注释中提供的链接更改了解决方案。在一些测试用例中我还可以,但是在某些情况下,代码失败了。我认为我做得正确,因此将不胜感激。

最佳答案

多亏了conscells,ajb和Amadan带领我到达了解决此问题的正确位置。

这是在Java中反转数组的正确解决方案。我知道这里已经提供了解决方案,但只是想让这个问题对将来的用户有所帮助。

import java.util.Scanner;
class TestClass {
public static void main(String args[] ) throws Exception {
    Scanner scan = new Scanner(System.in);
    int n = scan.nextInt();
    int a[] = new int[n];
    for(int i=0; i<n; i++)
        a[i] = scan.nextInt();
    for(int i=0; i<n/2; i++)
        swap(i,n-i-1,a);
    for(int i=0; i<n; i++)
        System.out.println(a[i]);

    }

public static void swap(int x, int y, int[] arr){
    int temp = arr[x];
    arr[x] = arr[y];
    arr[y] = temp;
}

}

10-07 16:07