2012-02-08 219 views
0

我該如何打印?二維陣列

1 2 3 4  
5 6 7 8 
9 10 11 12 
13 14 15 16 

我有這個至今:

int ROWS = 4; 
int COLS = 4; 
int[][] a2 = new int[ROWS][COLS]; 

String output = ""; // Accumulate text here (should be StringBuilder). 
//... Print array in rectangular form using nested for loops. 
for (int row = 0; row < ROWS; row++) { 
for (int col = 0; col < COLS; col++) { 
output += " " + a2[row][col]; 
} 
output += "\n"; 
System.out.print(output); 

,但它只是打印此:

0 0 0 0 
0 0 0 0 
0 0 0 0 
0 0 0 0 

而且我想在隨意打印出來的數字。 我該怎麼做?

+0

該行ROWS ++;不應該在那裏。 – 2012-02-08 12:05:55

+1

您可以編輯您的帖子以將其刪除。標籤下面有一個「編輯」鏈接。 – Mat 2012-02-08 12:07:41

+1

由於未在a2數組中填充值,因此您正在歸零? – 2012-02-08 12:07:50

回答

3

您需要填充a2如果你希望它包含非零值:

for (int col = 0; col < COLS; col++) { 
    a2[row][col] = row * COLS + col + 1; // <---- added this line 
    output += " " + a2[row][col]; 
} 

此外:

  1. 你缺少一個右大括號。它應該在output += "\n";之後。
  2. ROWS++的用途不明,看起來奇。

另外我想隨機打印出數字。我怎樣才能做到這一點?

三個簡單的步驟:

  1. 填入a2如上;
  2. randomly shufflea2;
  3. 打印出來(你已經知道如何做到這一點)。
+0

很好的答案!不修復整個代碼(從作業開始),但指向正確的方向。 – 2012-02-08 18:11:24

0
  1. 使用線,通過上述AIX提出:a2[row][col] = row * COLS + col + 1;
  2. 刪除線ROWS++
  3. 對於隨機數1D陣列上使用Collections.shuffle,然後組BU行和列
0

以及你陣列是空的

嘗試廣告I整流器初始化:

int[][] a2 = {{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}}; 

也是在代碼中的某些錯誤:試試這個:

int ROWS = 4; 
int COLS = 4; 
int[][] a2 = {{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}}; 

String output = ""; // Accumulate text here (should be StringBuilder). 
//... Print array in rectangular form using nested for loops. 
for (int row = 0; row < ROWS; row++) 
{ 
    for (int col = 0; col < COLS; col++) 
    { 
    output += " " + a2[row][col]; 
    } 
    output += "\n"; 
} 
System.out.print(output); 
+1

儘量不要在家庭作業時解決所有問題,而應指向正確的方向或提供提示和技巧。 – 2012-02-08 18:12:14

0

要獲得與預期相符導致....
首先你必須設置你的陣列的價值.. 。

0 0 0 0 
0 0 0 0 
0 0 0 0 
0 0 0 0 

你得到這一點,因爲INT的默認值是0這就是爲什麼顯示所有0。 。
要獲得您的陣列的隨機值使用Collections.shuffle