【发布时间】:2016-12-11 23:37:53
【问题描述】:
int[] array = new int[9];
int[][] matrix = { {0,1,2},
{3,4,5},
{6,7,8}};
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
array[i+j] = matrix[i][i];
}
}
for (int i = 0; i < array.length; i++) {
System.out.println(array[i]);
}
所以我希望数组设置为 {0,1,2,3,4,5,6,7,8,9},但输出是
00 01 02 43 44 45 86 87 88
这只是一个解决数独难题的附带项目,但这个问题一直困扰着我。我通常会尝试找到解决此问题的方法,但我已经到了想知道为什么这不起作用的地步。
【问题讨论】:
-
对于初学者来说,
matrix[i][i];几乎肯定不是您想要做的,因为它只会获取对角线值。此外,您还多次覆盖多个目标数组值。 -
array[i+j]只到达array[4]。您如何设法将值放入其余插槽? -
哪个数独来自 [0 , 9] ?我总是看到范围 [1 , 9 ]
-
@Mohsen_Fatemi 实际上是 [0,8]。