数组的反向输出不能正常工作

问题描述 投票:0回答:1

所以我再次对数组交换提出了一个小问题。

所以我在这里得到了这段代码:

public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);
    Random random = new Random();
    int indexe = scan.nextInt();
    System.out.println("Ihre Indexauswahl: " + indexe);
    int[] array = new int[indexe];
    System.out.println("Array:");
    System.out.println("{");
    for (int i = 0; i < array.length; i++) {
        array[i] = 1 + random.nextInt(99);
        System.out.println(i + " => " + array[i]);
    }

    System.out.println("}\nArray:\n{");
    for (int i = 0; i < array.length / 2; i++) {
        int temp = array[i];
        array[i] = array[array.length - i - 1];
        array[array.length - i - 1] = temp;
        System.out.println(i + " => " + array[i]);
    }
    System.out.println("}");
}

我测试了从阵列进行的交换,如果阵列中有10个索引,并且进行了交换,那么System.out.print中只会显示5个索引。

如果删除for条件中的“ / 2”,则得到10个索引,但后5个值错误。

我该如何解决?

带有“ / 2”的图片:

Picture with the "/2"

没有“ / 2”的图片:

enter image description here

java arrays swap
1个回答
0
投票

交换每个元素后打印

public static void main(String[] args) {
    Random random = new Random();
    int[] array = new int[10];

    for (int i = 0; i < array.length; i++) {
        array[i] = 1 + random.nextInt(99);
    }
    printArray(array);
    for (int i = 0; i < array.length / 2; i++) {
        int temp = array[i];
        array[i] = array[array.length - i - 1];
        array[array.length - i - 1] = temp;

    }
    printArray(array);
}

private static void printArray(int[] array) {
    System.out.println("Array: {");
    for (int i = 0; i < array.length; i++) {
        System.out.println(i + " => " + array[i]);
    }
    System.out.println("}");
}
© www.soinside.com 2019 - 2024. All rights reserved.