2011-04-15 153 views
0

我似乎無法在我的2維數組上得到正確的輸出。java中的二維數組

答案應該是1 5 9 2 6 10 3 7 11 4 8 12 ,我得到1 5 9 2 6 10 3 7 11

的int intar線必須是這樣。

將不勝感激任何幫助!

這裏是我的代碼:

public class Assign8 
{ 
    public static void main (String args[]){ 
    int intar[][] = {{1,2,3,4},{5,6,7,8},{9,10,11,12}}; 
    for (int i=0; i<intar.length; i++) 
     for (int j=0; j<intar.length; j++) 
      System.out.print(" " + intar[j][i]); 
    } 
} 

回答

2

intar.length將是intar中的元素數 - 在這種情況下,數組的數量或第j維中元素的數量。在第i維中,您需要遍歷intar [j] .length或第j個數組的長度。

這很難做,因爲你不知道當你迭代我時,j將會是什麼。如果你可以假定所有的「內部」數組的長度相同,你可以這樣做:

for (int i=0; i<intar[0].length; i++){ 
    // rest the same 
} 
+0

必須在(i = 0; ...)之前添加int,然後才能正常工作。謝謝! – user709078 2011-04-15 21:53:54

+0

好抓!編輯它,所以它是準確的。 – Denise 2011-04-15 22:16:21

0

嘗試

for (int i = 0; i < intar.length; i++) 
     for (int j = 0; j < intar[i].length; j++) 
      System.out.print(" " + intar[i][j]); 

順便說一句,這是更好的風格第j之前使用I指數(我不來Ĵ之前)

+0

贊同風格,但不會給他他想要的順序。 – Denise 2011-04-15 03:25:47

+0

這將產生1,2,3,4,5,6,7 ... – squawknull 2011-04-15 03:27:30

0

這是因爲數組的長度是3,你應該改變這樣的代碼

對(INT I = 0;我< intar.length;我++){
對(INT J = 0;Ĵ< intar [I]。長度; J ++)
是System.out.print(」「+ intar [i] [j]); }

+0

這將產生1,2,3,4,5,6,7 ...... – squawknull 2011-04-15 03:27:57