java - 我的反转数组的输出出现问题

标签 java arrays reverse

好吧,我有我的代码,一切都很好,但我不明白为什么我的输出给了我两个反转而不是一个。最后一个是正确的,但反转的第一个输出有点困惑。

public class ICE17 {

       static //Examine the following program:
       class ArrayProblems {

            public static void main(String[] args) {

                int[] val = { 0, 1, 2, 3 };
                int sum = 0; //write code here

                for (int i = 0; i < val.length; i++) {
                    sum += val[i];
                 }

                System.out.println("Sum of all numbers = " + sum);
                reverse();
            }
            public static void reverse() {
                int[] val = { 0, 1, 2, 3 };
                //int temp=0;
                System.out.println("Original Array: " + val[0] + " " + val[1] + " " + val[2] + " " + val[3]);
                // write code here to reverse the order of the numbers in the array
                for (int i = 0; i < val.length / 2; i++) {

                    int temp = val[i];
                    val[i] = val[val.length - 1 - i];
                    val[val.length - 1 - i] = temp;    
                    System.out.println("Reversed Array: " + val[0] + " " + val[1] + " " + val[2] + " " + val[3]);

                }
            }
        }
    }

最佳答案

埃里克(Erick)对于解决打印问题的回答是正确的。您正在 for 循环中打印数组,因此它将打印它的 length/2 次。

您的反向方法的另一件事是创建一个本地数组并反转它。如果您确实想反转在 main 方法中创建的数组,请编写一个函数,该函数将接受数组作为输入,如下所示:

public class ICE17 {

    public static void reverseArray(int[] val) {
        for (int i = 0; i < val.length / 2; i++) {
            int temp = val[i];
            val[i] = val[val.length - 1 - i];
            val[val.length - 1 - i] = temp;
        }
    }

    public static void printArray(int[] val) {
        for(int i: val) {
            System.out.print(i + " ");
        }
        System.out.println();
    }
    public static void main(String[] args) {
        int arr[] = { 0, 1, 2, 3 };
        System.out.println("Array before reverse");
        printArray(arr);
        reverseArray(arr);
        System.out.println("Array after reverse");
        printArray(arr);
    }
}

关于java - 我的反转数组的输出出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30659167/

相关文章:

scala - 如何反转/翻转/反转/交换 scala 的选项?

python - 为什么在递归情况下出现 "Function not Defined"错误?

java - Amdatu:如何使 ExceptionMapper (@Provider) 工作?

java - 正则表达式从链接中提取值

python - 正则表达式从右方向匹配

c - 为什么c语言编码会出现运行时错误?

c# - 如何将数组的一部分复制到新数组。 C#

java - 使用 apache commons 的 RandomStringUtils 生成唯一键

java - Spring boot graphql 在类路径上找不到 graphql 模式文件

java - 为什么我的网格没有从 'O' 更新到 'S'(数组)