二维数组

时间:2012-02-08 12:04:05

标签: java arrays random

我该如何打印?

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

另外,我想随机打印出这些数字。 我怎么能这样做?

4 个答案:

答案 0 :(得分: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++的目的不明确,看起来非常奇数。
  3.   

    另外,我想随机打印出这些数字。我怎么能这样做?

    三个简单的步骤:

    1. 如上所述填充a2;
    2. randomly shuffle a2;
    3. 打印出来(你已经知道该怎么做了)。

答案 1 :(得分:0)

  1. 使用上面 aix 提议的行:a2[row][col] = row * COLS + col + 1;
  2. 删除行ROWS++
  3. 对于随机数,在1D阵列上使用Collections.shuffle,然后将行和列分组

答案 2 :(得分:0)

你的数组是空的

尝试直接初始化:

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);

答案 3 :(得分:0)

根据您的期望得到结果....
首先,你必须设置数组的值......

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

你得到这个是因为int的默认值是0,这就是为什么显示所有0 ..
要获取数组的随机值,请使用Collections.shuffle