import java.util.Scanner;
public class ModifyArray {
public static int [] swapArrayEnds(int [] sortArray, int numElem) {
int temp = 0;
int i = 0;
for (i = 0; i < numElem - 1; ++i){
temp = sortArray[0];
sortArray[0] = sortArray[numElem - 1];
sortArray[numElem - 1] = temp;
}
return sortArray;
}
public static void main (String [] args) {
int numElem = 4;
int[] sortArray = new int[numElem];
int i = 0;
sortArray[0] = 10;
sortArray[1] = 20;
sortArray[2] = 30;
sortArray[3] = 40;
swapArrayEnds(sortArray, numElem);
for (i = 0; i < numElem; ++i) {
System.out.print(sortArray[i]);
System.out.print(" ");
}
System.out.println("");
return;
}
}
在方法 swapArrayEnds 中,我可以交换第一个用户输入的结尾,但如果主方法中的numElem发生更改, swapArrayEnds 将不会应用于更改参数
我需要帮助尝试获得第二个用户输入
答案 0 :(得分:0)
如果你想要交换数组的最后一个元素和第一个元素,你不需要自己传递长度,你可以这样做:
public static int [] swapArrayEnds(int [] sortArray) {
int temp = sortArray[0];
sortArray[0] = sortArray[sortArray.length-1];
sortArray[sortArray.length-1] = temp;
return sortArray;
}
&#13;
这种方法将交换第一个和最后一个元素,如下所示:
你这样说:[3, 4, 6, 8]
你得到这个:[8, 4, 6, 3]
还要注意我从你的方法中删除了for
循环,因为它只是一遍又一遍地交换相同的元素,这没有意义(因为如果你想交换2次,那么只会没有效果所以为什么要调用swap呢?)。