2015-04-03 82 views
-5

我試圖使用一維數組來打印隨機數0和1的3x3表。之後,我想打印由全1或全0組成的行(類似於tic tac toe),但現在我無法獲得我需要的3x3顯示。顯示正確的行數

int[] row1 = new int[3]; 
    int[] row2 = new int[3]; 
    int[] row3 = new int[3]; 
    for (int i = 0; i < 3; i++) 
    { 
     row1[i] = (int)(Math.random() * 2); 
     row2[i] = (int)(Math.random() * 2); 
     row3[i] = (int)(Math.random() * 2); 
     System.out.print(row1[i]); 
     System.out.print("\n"); 
     System.out.print(row2[i]); 
     System.out.print(row3[i]); 

     } 

輸出(佈局)是:

0 

001 

110 

00 

這是我來三行三列顯示的數字最接近的一次。我嘗試過打印,println和printf,但我無法得到它。我知道可能會有一些不必要的代碼,但在這一點上,我不知所措。任何幫助表示讚賞。

+2

把那'System.out的。打印(「\ n」);'在所有打印語句的最後!考慮到你的輸出行之間有空行,我建議你到處使用'System.out.println'。 – 2015-04-03 18:58:33

+1

@BhargavRao建議使行打印爲列 – Shar1er80 2015-04-03 19:10:25

+0

*,但現在我無法獲得我需要的3x3顯示。* ---太含糊了!因此@ Shar1er80我們需要OP來闡明他的立場,並提及他需要的* 3x3 *是什麼。我希望你明白了我的觀點:) – 2015-04-03 19:15:35

回答

1

因爲你的變量命名爲行,因爲他們正在寫滿數字,他們不應該被顯示。

用數字填充行後,單獨循環並打印它們。

int[] row1 = new int[3]; 
int[] row2 = new int[3]; 
int[] row3 = new int[3]; 

// Fill your rows with numbers 
for (int i = 0; i < 3; i++) 
{ 
    row1[i] = (int)(Math.random() * 2); 
    row2[i] = (int)(Math.random() * 2); 
    row3[i] = (int)(Math.random() * 2); 
} 

printRow(row1); 
printRow(row2); 
printRow(row3); 

的printRow方法看起來像:

private void printRow(int[] row) 
{ 
    for (int i = 0; i < row.length; i++) 
    { 
     System.out.print(row[i]); 
    } 
    System.out.print("\n"); 
} 

然後你的輸出會看起來像(根據被分配什麼樣的隨機數):

 
010 
101 
010 
+0

你是什麼意思「添加顯示輸出」?現在我只是給出一個建議,顯示他的3x3表格。即使manouti爲獲得3x3表提供了一個很好的建議。 – Shar1er80 2015-04-03 19:22:26

+0

哦,我明白了......謝謝! – Shar1er80 2015-04-03 19:26:09

+0

現在你知道添加輸出的重要性。一切順利,祝你好運:) – 2015-04-03 20:25:51

2

您需要將新行後三個print報表顯示一排:

for (int i = 0; i < 3; i++) { 
    row1[i] = (int) (Math.random() * 2); 
    row2[i] = (int) (Math.random() * 2); 
    row3[i] = (int) (Math.random() * 2); 
    System.out.print(row1[i]); 
    System.out.print(row2[i]); 
    System.out.print(row3[i]); 
    System.out.print("\n"); 

} 

在這種情況下,最好重新命名的數組爲col1col2col3,因爲每個迭代打印一通過從列中選擇一個元素來進行排序。由於您隨機生成0和1,因此不應該有所不同。

int[] col1 = new int[3]; 
int[] col2 = new int[3]; 
int[] col3 = new int[3]; 
for (int i = 0; i < 3; i++) { 
    col1[i] = (int) (Math.random() * 2); 
    col2[i] = (int) (Math.random() * 2); 
    col3[i] = (int) (Math.random() * 2); 
    System.out.print(col1[i]); 
    System.out.print(col2[i]); 
    System.out.print(col3[i]); 
    System.out.print("\n"); 

} 
+0

這會將行打印爲列 – Shar1er80 2015-04-03 19:09:09

+0

@ Shar1er80然後,OP可以重命名以反映列。這裏不重要,因爲值是隨機的。 – manouti 2015-04-03 19:15:16

+0

我同意顯示3x3表格 – Shar1er80 2015-04-03 19:23:00

0
public static void main (String[] args) throws java.lang.Exception 
{ 
     int[] row1 = new int[3]; 
int[] row2 = new int[3]; 
int[] row3 = new int[3]; 
for (int i = 0; i < 3; i++) 
{ 
    row1[i] = (int)(Math.random() * 2); 
    row2[i] = (int)(Math.random() * 2); 
    row3[i] = (int)(Math.random() * 2); 

    } 

    for (int i : row1) 
    { 
    System.out.print(i); 
    } 

    System.out.print("\n"); 

    for (int i : row2) 
    { 
    System.out.print(i); 
    } 


    System.out.print("\n"); 
    for (int i : row3) 
    { 
    System.out.print(i); 
    } 

    System.out.print("\n"); 
}