【发布时间】:2020-11-08 14:01:30
【问题描述】:
static int[] fun1(int[] ar){
int[] auxarray = new int[ar.length];
int j = ar.length;
for (int i = 0; i < ar.length; i++) {
auxarray[j - 1] = ar[i];
j = j - 1;
}
return ar;
}
我曾尝试实现一个交换方法来修改同一个数组,但它不起作用(用一个 void 方法测试并在其中打印结果:与初始数组相同)
public static void main(String args[]){
Scanner input = new Scanner(System.in);
System.out.print("Please enter the size of the array: ");
size = input.nextInt();
array = new int[size]; //array and size are declared private static globally
for(int i = 0; i<size; i++){
array[i] = input.nextInt();
}
System.out.println("Your reversed string is:");
int[] reversedarray = fun1(array);
for(int i = 0; i < size; i++){
System.out.print(reversedarray[i] + ' ');
}
}
这在所有情况下都返回 3334353637..。关于我做错了什么的任何解决方案或任何想法?
【问题讨论】:
-
您在下面得到了答案。如果您选择了比
ar和auxarray更方便的名称,例如original和reversed可能更明显。 -
在
fun1中将返回数组从return ar更改为return auxarray; -
所以我把这一切都整理好了。除了我弄错了数组这一事实(这是我在尝试调试时错过的一件事,因为我尝试了大约 6 种不同的方法),当我尝试打印数组时,我使用了“”而不是“”,这正在返回不需要的“3”。