gpt4 book ai didi

arrays - Java 数组反转逻辑

转载 作者:行者123 更新时间:2023-12-01 10:19:11 28 4
gpt4 key购买 nike

import java.util.Scanner;

public class Reverse {

public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int arr[] = new int[5];
System.out.println("Enter the values in the array");
for (int i = 0; i < arr.length - 1; i++) {
arr[i] = sc.nextInt();
}

for (int i = 0; i < 5; i++) {
int temp;
int j = 4;
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
j--;
System.out.println(arr[i]);
}

}
}

这个逻辑不是反转整数数组为什么?????

input 123

output is 0123

最佳答案

您可以在这里尝试的一种方法是简单地将数组中的每个元素交换到中间位置:

int[] arr = new int[] {1, 2, 3, 4, 5};
System.out.println(Arrays.toString(arr));
for (int i=0; i < arr.length/2; i++) {
int temp = arr[i];
int j = arr.length - i - 1;
arr[i] = arr[j];
arr[j] = temp;
}
System.out.println(Arrays.toString(arr));

这打印:

[1, 2, 3, 4, 5]
[5, 4, 3, 2, 1]

您当前逻辑的问题主要是这一行:

int j = 4;

对于循环的每次 迭代,您将上指针分配给数组作为4。相反,值 j 应该在循环外初始化为 4,然后在每次迭代期间递减。但是,我可能会使用上面给出的版本。

关于arrays - Java 数组反转逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56770854/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com