所以我再次对数组交换提出了一个小问题。
所以我在这里得到了这段代码:
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”的图片:
没有“ / 2”的图片:
交换每个元素后打印
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("}");
}