所以我再次对数组交换提出了一个小问题。
所以我在这里得到了这段代码:
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”的图片:
因此,按照您的逻辑,您将从数组的最后一个索引开始,从索引开始对数组进行迭代,因此基本上您应该在交换后打印输出,因为交换仅完成array.length / 2次,因此仅打印一半的时间。
尝试执行以下代码:
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]);
}
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("}\nArray:\n{");
for(int i = 0; i < array.length ; i++) {
System.out.println(i + " => " + array[i]);
}
System.out.println("}");
}
交换每个元素后打印
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("}");
}
嗯,我有一个简单的逻辑:如果您想使用数组,请说h []
取两个变量a,b。a是起点,b是终点。所以b =数组的长度。
现在运行循环,直到到达数组的中点,因为您将交换数字,直到仅到达中点。
因此将第一个元素与最后一个元素交换,依此类推,直到到达中点
int x = a [i]; a [i] = b [i]; x = b [i];我正在遍历数组h