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
这只是解决soduku难题的一个侧面项目,但这个问题一直困扰着我。我经常试图找到解决这个问题的方法,但我已经达到了我想知道为什么不起作用的地步。
答案 0 :(得分:3)
我不知道你是如何获得输出的,这不是你的代码所给出的。总之...
你不想要array[i+j]
,因为它会给你0到4的值,带有重复。您想迭代array
的每个元素,因此请使用array[i*3 + j]
。此外,您不希望matrix[i][i]
,而是matrix[i][j]
,但我认为这只是一个错字。
答案 1 :(得分:0)
int index = 0;
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
array[index] = matrix[i][j];
index++;
}
}