2015-02-05 62 views
-1

我的其他對角線方法無法正常工作。魔方其他對角線

public int sumOtherDiag() 
{ 
    int otherDiag = 0; 
    for (int i = 0; i < square.length−1; i++) 
    { 
     otherDiag += square[i][i]; 
    } 
    return otherDiag; 
} 

我沒有我的輸出顯示在這裏,但是有沒有什麼有人看到錯誤的蝙蝠?

此方法應該添加元素並獲得魔術方塊的第二個對角線(從右到下)的總和。 例如,如果我的廣場上

01 04 03 

03 05 04 

05 02 04 

輸出

03 + 05 + 05 = and get 13

但我的實際輸出打印數不到什麼實在是太應該。

(很難沒有我的輸出來解釋。我會上傳後,當我得到我的程序訪問)

任何幫助,將不勝感激,謝謝!

+0

它應該做什麼,它做什麼呢? – immibis

+0

爲什麼我

+0

因爲此對角線從行的末尾開始,並從那裏添加對角線數字的總和。 –

回答

1
public int sumOtherDiag() 
{ 
    int otherDiag = 0; 
    int count = square.length; 
    for (int i = 0; i < square.length; i++) 
    { 
     otherDiag += square[i][--count]; 
    } 
    return otherDiag; 
} 
1

讓我們打破你的代碼,看看你做了什麼,哪些是你想要的東西:

與一個循環,你有你的座標爲[0,0][1,1]和你錯過了[2,2]根據我的知識,因爲你選擇最後一個索引小於square.length−1,並且您必須知道索引從零開始到小於square.lenght

如果運行這段代碼:

int[][] array = {{01, 04, 03}, 
     {03, 05, 04}, 
     {05, 02, 04} 
     }; 
     int otherDiag = 0; 
     for (int i = 0; i < array.length; i++) { 
      System.out.println(array[i][i]); 
     } 

你的結果會是這樣

1 
5 
4 

和你,如果你選擇了array.lenght-1被排除你的輸出

1 
5 

由於你看到你留下了最後一個4的索引,我相信這不是你正在尋找的。

你想有對角線元素的總和不豎向構件

想要的座標

[0,2][1,1][2,0]

用我的樣品作爲藍圖找出你想要的東西

例如,假設x = new int[3][4]x[0]x[1],和x[2]是一維 陣列,並且每個包含四個元件,如該圖所示x.length3,和 x[0].lengthx[1].length,和x[2].length4

enter image description here

如何遍歷和使用二維數組,您可以按照以下示例作爲您的藍色打印

enter image description here