我目前正在研究Java中的数组。但是,我在创建对称表时遇到了问题,如下所示:
是否有一个简单的解决方案来创建这样的数组?这不是家庭作业,而是我正在学习的考试。我想知道怎么做。
提前致谢
这是我的代码:
int [][] table = new int [5] [8];
for (i=0;i < 5; i ++)
{
table[i][0] = i+1;
}
for ( j = 0; j < 4; j ++)
{
table[ i ][ j ] = ;
}
代码不多,但我不知道如何迭代它,所以所有值都是对称的。我在第一行填充了值。我正在考虑在列中循环到4,所以我在一半但是我该怎么办?
答案 0 :(得分:0)
您的代码是一个开始,但不会填充所有值。你应该嵌套你的for循环,只填充左边的部分。然后可以从左侧条目镜像右侧条目。试试这个:
public static void main(String[] args)
{
int[][] table = new int[5][8];
for (int row = 0; row < 5; row++)
{
for (int column = 0; column < 4; column++)
{
// left side entry [row][0..3]
// each entry is 5 more than the entry left of it
table[row][column] = column * 5 + row + 1;
// right side entry [row][7..4] mirrored from corresponding entry [row][0..3]
// i.e. column 7 <- column 0, column 6 <- column 1, etc.
table[row][7 - column] = table[row][column];
}
}
for (int row = 0; row < 5; row++)
{
for (int column = 0; column < 8; column++)
{
System.out.format("%4d", table[row][column]);
}
System.out.println();
}
}
输出:
1 6 11 16 16 11 6 1
2 7 12 17 17 12 7 2
3 8 13 18 18 13 8 3
4 9 14 19 19 14 9 4
5 10 15 20 20 15 10 5