2014-03-02 104 views
0
public static void reversedArray(double testArray[]) 
{ 
    double lastNumber = 0; 
    for (int counter1 = 0, counter2 = testArray.length - 1; counter1 < testArray.length; counter1++, counter2 \--) 
    { 
     lastNumber = testArray[counter2]; 
     testArray[counter1] = testArray[counter2]; 
     testArray[counter2] = lastNumber; 
    } 
} 

這是顛倒陣列的方法。該數組長度爲5.它正確顯示前3個數字,但最後2個數字是錯誤的。例如,我輸入1,2,3,4,5,它返回5,4,3,4,5顛倒陣列的問題

編輯:看起來像我得到它,我拿出testArray.length作爲比較在for循環並用counter2代替它。

+0

這是什麼語言?我傾向於說Java,但只有99%有把握。 – skiwi

+0

檢查此:http://stackoverflow.com/q/2137755/1817029 –

回答

1

您正在覆蓋數組中的數據。您需要一些臨時位置來存儲它。現在你應該可以自己修復你的方法。

下次考慮使用Collections.reverse(Arrays.asList(yourArray))而不是自己寫的。

0

應該

lastNumber = testArray[counter2]; 
    testArray[counter2] = testArray[counter1]; 
    testArray[counter1] = lastNumber; 
+0

不,它不應該是這樣的。你有沒有檢查你的答案? –

+0

確實我沒有。這不是他的代碼唯一的問題,但肯定是一個問題。 –

-1
public static void reversedArray(double testArray[]) 
{ 
    double lastNumber = 0; 
    for (int counter1 = 0, counter2 = testArray.length - 1; counter1 < testArray.length; counter1++, counter2 \--) 
    { 
     lastNumber = testArray[counter2]; 
     testArray[counter1] = testArray[counter2]; 
     testArray[counter2] = lastNumber; //this line does nothing. testArray[counter2] is already lastnumber. 
    } 
} 

最後一行沒有做任何事情。最後一個號碼已經分配給testArray [counter2]。然後它又回到自己身上。