-1

我尝试显示一个二维表,但由于某种原因我不能,我看不出我写错了什么。

这是我的代码(我在 vim 中工作):

            int [][] tab = new int [5][5];

            for (int i= 0; i<tab.length ; i++){
                    for (int j =0; j<tab[i].length; j++){
                            tab[j][i]=i;
                            System.out.println("" + tab[j][i]);
                    }
                    System.out.println("");
            }
    }

这段代码的结果是:

0

0

0

0

1

1

1

1

2

2

2

2

3

3

3

3

4

4

4

4

而且我要:

0 0 0 0

1 1 1 1

2 2 2 2

3 3 3 3

4 4 4 4

有人可以帮我弄这个吗?

谢谢

4

3 回答 3

2

在内部循环中,替换: -

System.out.println("" + tab[j][i]);

和: -

System.out.print(" " + tab[j][i]);

因为您想继续在同一行打印。

于 2012-12-04T19:39:18.070 回答
0

问题是System.out.println("" + tab[j][i]);

在输出中打印一整行,如果您更改

System.out.println("" + tab[j][i]);

System.out.print(tab[j][i] + " ");

添加一个空格,您将在该行中打印字符串,但它不会中断并从新行开始。试试@Rohit Jain 的帖子,这是一个正确的解决方案......

于 2012-12-04T19:55:18.520 回答
0

您需要更改代码

int [][] tab = new int [5][5];
for (int i= 0; i<tab.length ; i++){
    for (int j =0; j<tab[i].length; j++){
        tab[i][j]=i;
        System.out.print( tab[i][j]+" ");
    }
    System.out.println("");
}

导致您的外部循环为每一行运行,内部循环为每一列运行。所以你必须使用 tab[i][j](约定是 tab[row][col])来使代码没有错误。在你的情况下,你有相等的行和列。但是当它们不同时可能会出现问题。

于 2012-12-04T19:56:32.720 回答