2016-12-02 80 views
-5

我是新來的編程新手。 我有一個任務,其中包含反轉數組的元素,但不能使用數組反向方法。我不知道我怎麼能做到這一點。我嘗試使用for循環,但它不起作用。 在此先感謝。陣列中的反向元素無陣列逆向法

試圖扭轉這樣的事情: 1,4,9,16,9,7,4,9,11 到11,9,4,7,9,16,9,4,1

+5

您可以添加失敗的嘗試嗎?這樣我們就能看到你做錯了什麼。 – crumbug

+1

把它放在'List'中,然後用custom * Comparator *做'Collections.sort()'。 – GurV

+0

閱讀本文http://stackoverflow.com/questions/2137755/how-do-i-reverse-an-int-array-in-java – gihan

回答

2

因此,這是一個家庭作業問題,我不會給你提供完整的答案,而是給你一些提示。

如果您可以創建附加數組,請嘗試以下操作:創建一個將包含相反元素的新數組。從最後開始迭代你的初始數組,並移動到元素0.正如你這樣做只是設置initialArray[i] = newArray[index]請注意,iindex只是我編造的變量。這項任務的一部分困難是弄清楚如何在兩個陣列之間進行分配,所以我會把它留給你!

隨意問任何更多的問題,我可以嘗試引導你的解決方案。

祝你好運!

1

使用for循環,第二個數組是最簡單的方法。

int[] array = new int[]{ 1, 4, 9, 16, 9, 7, 4, 9, 11 }; 
int[] array2 = array; 
int count = 0; 
for(int i = array.length-1; i >= 0; i--) { 
    array2[count] = array[i]; 
    count++; 
} 

更復雜的解決方案只使用一個數組將暫時保存到外部int值並交換它們。

int count = 0; 
int[] array = new int[]{ 1, 4, 9, 16, 9, 7, 4, 9, 11 }; 
for(int i = array.length-1; i >= count; i--) { 
    int x = array[i]; 
    array[i] = array[count]; 
    array[count] = x; 
    count++; 
}