2013-11-26 113 views
0

我需要顯示一個數字數組。輸出必須是這樣的:顯示陣列ColumnWise

10 25 29 13 46 30 26 57 41 34 88 52 60 77 82 

我現在有工作,但它不是顯示欄,明智的,這裏是我的輸出:

10 13 26 34 60 25 46 57 88 77 29 30 41 52 82 

我找到了答案類似的問題在這裏,但它對於不完全相同長度的行,所以我認爲它不會有幫助。

這裏是我的代碼(也我是新來的Java):

public class test 
{ 
public static void main(String[] args) 
{ 

int rows = 3; 
int cols = 5; 


int intar [][] = { {10, 13, 26, 34, 60} , 
       {25, 46, 57, 88, 77}, 
       {29, 30, 41, 52, 82} }; 



for (int i = 0; i < rows; i++) { 
    for (int j = 0; j < cols; j++) { 
    System.out.print (intar[i][j] + " "); 
    } 
} 


} 
} 
+0

你應該養成使用更好的名稱爲循環指標的習慣。在現實世界中,我和j會導致混亂。如果您使用過rowIndex和colIndex,則可能會發現找出錯誤的位置更容易。 – Jason

+0

這正是我的教授要求我們使用的(i,j) –

回答

3

取代你的for循環可以做一個小的變化如下:

for (int i = 0; i < rows; i++) { 
     for (int j = 0; j < cols; j++) { 
      System.out.print(intar[i][j] + " "); 
     } 
    } 

要在控制檯

for (int j = 0; j < cols; j++) { 
     for (int i = 0; i < rows; i++) { 
      System.out.print(intar[i][j] + " "); 
     } 
    } 

輸出;

10 25 29 13 46 30 26 57 41 34 88 52 60 77 82 
+0

謝謝:)這工作! –

+0

歡迎。很高興它可以幫助你。 :) – MouseLearnJava

-1

添加新行

for (int i = 0; i < rows; i++) { 
    for (int j = 0; j < cols; j++) { 
    System.out.print (intar[i][j] + " "); 
    } 
    System.out.print ("\n"); 
} 

BTW你也想做填充

+0

這不會改變數字的順序。 – Jason

1

開關的以下兩行:

for (int j = 0; j < cols; j++) { 
    for (int i = 0; i < rows; i++) { 
0

只是這個

for (int i = 0; i < cols; i++) { 
    for (int j = 0; j < rows; j++) { 
    System.out.print (intar[j][i] + " "); 
    } 
    System.out.println(); 
} 
+0

爲什麼downvote?我可以知道原因 – shikjohari

+0

我不是downvoter,但這可能會引發異常(超出界限)。 – Maroun

+0

@MarounMaroun它是一段正在運行的代碼......我已經嘗試過了。 – shikjohari

0

你靠近,這是

for (int i = 0; i < cols; i++) { 
    for (int j = 0; j < rows; j++) { 
    System.out.print(intar[j][i] + " "); 
    } 
} 
+0

這將拋出ArrayIndexOutOfBoundsException – Jason

+0

@Jason - 我跑了它... 10 25 29 13 46 30 26 57 41 34 88 52 60 77 82 –

+0

對不起,沒有發現你也改變了我和j的含義。更簡單的只是切換兩個for循環的位置。 – Jason