Java中的数组问题
我试图编写一些代码来获取矩阵9X9和两个数字:行-表示行数,列-表示列数。区域为小矩阵3X3。大矩阵包含9个3X3的小矩阵。该方法是布尔型的:如果小矩阵3X3的单元格中没有相等的数字,则该方法的输出为真,该小矩阵3X3将由行数和列数定位。(数字可以从1'到9) 我使用一个布尔数组,并利用它的索引,每当我遇到一个数字,我就会更新布尔数组中的索引单元格,如果我遇到两次true,我就会返回False。 当单元格为空时,可能会出现这种情况,无论何时,单元格都包含值“-1”。 代码可以编译,但不起作用。如你所见,我正在搜索mod 3的边界 有人能认出虫子吗Java中的数组问题,java,arrays,Java,Arrays,我试图编写一些代码来获取矩阵9X9和两个数字:行-表示行数,列-表示列数。区域为小矩阵3X3。大矩阵包含9个3X3的小矩阵。该方法是布尔型的:如果小矩阵3X3的单元格中没有相等的数字,则该方法的输出为真,该小矩阵3X3将由行数和列数定位。(数字可以从1'到9) 我使用一个布尔数组,并利用它的索引,每当我遇到一个数字,我就会更新布尔数组中的索引单元格,如果我遇到两次true,我就会返回False。 当单元格为空时,可能会出现这种情况,无论何时,单元格都包含值“-1”。 代码可以编译,但不起作用。如
public static boolean isZoneValid(int row, int col, int[][] matrix) {
int fromrow = row - (row % 3);
int fromcol = col - (col % 3);
boolean[] ind = new boolean[9];
Arrays.fill(ind, false);
for (int i = fromrow; i < fromrow + 3; i++) {
for (int j = fromcol; j < fromcol + 3; j++) {
if (matrix[i][j] != -1) {
if (ind[(matrix[i][j])-1] == true) {
return false;
} else {
ind[(matrix[i][j]) - 1] = true;
}
}
}
}
return true;
}
publicstaticbooleanevalid(int行、int列、int[][]矩阵){
int fromrow=行-(行%3);
int fromcol=col-(col%3);
boolean[]ind=新的boolean[9];
数组。填充(ind,false);
for(int i=fromrow;i
我编写了这个简单的测试,它通过了所有测试。你能提供一个不通过的测试吗
int[][] a = {{7, 8, 9}, {1, 2, 3}, {4, 5, 6}};
if (!isZoneValid(0, 0, a)) throw new AssertionError("a");
int[][] b = {{-1, -1, 9}, {-1, 2, 3}, {9, 5, 6}};
if (isZoneValid(0, 0, b)) throw new AssertionError("b");
int[][] c = {{-1, -1, -1}, {-1, -1, -1}, {-1, -1, -1}};
if (!isZoneValid(0, 0, c)) throw new AssertionError("c");
我写了这个简单的测试,它通过了所有测试。你能提供一个不通过的测试吗
int[][] a = {{7, 8, 9}, {1, 2, 3}, {4, 5, 6}};
if (!isZoneValid(0, 0, a)) throw new AssertionError("a");
int[][] b = {{-1, -1, 9}, {-1, 2, 3}, {9, 5, 6}};
if (isZoneValid(0, 0, b)) throw new AssertionError("b");
int[][] c = {{-1, -1, -1}, {-1, -1, -1}, {-1, -1, -1}};
if (!isZoneValid(0, 0, c)) throw new AssertionError("c");
你能把“它不起作用”说得更详细一点吗?我觉得它确实不错。是否可以添加导致错误输出的示例输入?删除
数组。填充(ind,false)代码><代码>布尔值
数组始终初始化为false。当您要检查第一行时-在行参数中传递0还是传递1?添加一些调试输出以在前后打印出矩阵。也许你只是把行和列混在一起了。用JUnitCan编写一些测试用例,您可以扩展到“它不工作”?在我看来,它确实不错。是否可以添加导致错误输出的示例输入?删除数组。填充(ind,false)代码><代码>布尔值
数组始终初始化为false。当您要检查第一行时-在行参数中传递0还是传递1?添加一些调试输出以在前后打印出矩阵。也许你只是把行和列混在一起了。用JUnitI编写一些测试用例,我想这个方法很好。我想还有别的地方不对劲。我想这个方法很好。我想还有别的问题。