我有一個分配給創建在其中創建大小10的陣列的一類創建一個相反的順序排列,稱爲source
,和在0-10範圍內的在其分配的隨機整數到的所有索引,然後調用創建以相反的順序一個新的陣列的方法。我想下面的代碼:從給定陣列
public class Exercise7_4 {
// reverse array method
public static int[] reverseArray(int[] arr) {
int[] reverse = new int[arr.length];
for (int i = 0; i < reverse.length - 1; i++) {
reverse[i] = arr[arr.length - 1 - i];
}
return reverse;
}
// print array in ascending order
public static void printArray(int[] arr) {
for (int i = 0; i < arr.length - 1; i++) {
System.out.printf("%d\t", arr[i]);
}
System.out.println();
}
public static void main(String[] args) {
int[] source = new int[10];
for (int i = 0; i < source.length - 1; i++) {
source[i] = (int) (Math.random() * 10 + 1);
}
int[] reverse = reverseArray(source);
printArray(source);
printArray(reverse);
}
}
的問題是,輸出我得到這個樣子的:
7 1 3 7 10 9 6 2 6
0 6 2 6 9 10 7 3 1
意思,reverseArray
方法不正確的reverse[0]
出於某種原因。
我想知道這是爲什麼發生,我怎麼能解決這個問題。 在此先感謝!
在for循環從'0'迭代,以'編曲。長度-2「和」反向長度-2「。改變你的循環類似於'for(int i = 0; i
感謝@JonnyHenly的幫助! –