用Java打印数独矩阵-如何获得正确格式的输出
这可能是一个非常简单的问题,哦,我的上帝,这太令人震惊了!问题,但给出一个数独矩阵,使用如下代码:用Java打印数独矩阵-如何获得正确格式的输出,java,Java,这可能是一个非常简单的问题,哦,我的上帝,这太令人震惊了!问题,但给出一个数独矩阵,使用如下代码: sudoku = new int[9][9]; public void printBoard() { for (int i=0; i<9; i++){ for (int j=0; j<9; j++){ if (sudoku[i][j] == 0) System.out.print(". "); if (sudoku[i][j] ==
sudoku = new int[9][9];
public void printBoard()
{
for (int i=0; i<9; i++){
for (int j=0; j<9; j++){
if (sudoku[i][j] == 0) System.out.print(". ");
if (sudoku[i][j] == 1) System.out.print("1 ");
if (sudoku[i][j] == 2) System.out.print("2 ");
if (sudoku[i][j] == 3) System.out.print("3 ");
if (sudoku[i][j] == 4) System.out.print("4 ");
if (sudoku[i][j] == 5) System.out.print("5 ");
if (sudoku[i][j] == 6) System.out.print("6 ");
if (sudoku[i][j] == 7) System.out.print("7 ");
if (sudoku[i][j] == 8) System.out.print("8 ");
if (sudoku[i][j] == 9) System.out.print("9 ");
}
System.out.println(" ");
}
正如我所说,我知道我缺少了几行代码来实现这一点,但我非常感谢任何帮助!谢谢 由于数组中的元素默认值为0,因此您将获得很多点数。因此,由于以下情况:
if (sudoku[i][j] == 0) System.out.print(". ");
你只会得到分数
编辑:要以所需格式打印,可以尝试检查i和j值是否为3的倍数:
for (int i = 0; i < 9; i++) {
if (i % 3 == 0 && i != 0) // not first iteration
System.out.println(); // print extra new-line each 3 iterations
for (int j = 0; j < 9; j++) {
if (j % 3 == 0)
System.out.print(" "); // to print spaces between columns
if (sudoku[i][j] == 0) {
System.out.print(". ");
continue; // since it's 0, continue with next iteration
}
... // here print values
}
System.out.println();
}
这是您需要做的:
package hts;
public class HTS {
static int[][] sudoku = new int[9][9];
public static void printBoard() {
for (int i = 0; i < 9; i++) {
System.out.print("\n");
if(i%3==0)
System.out.print("\n");
for (int j = 0; j < 9; j++) {
if (j % 3 == 0)
System.out.print(" ");
if (sudoku[i][j] == 0)
System.out.print(". ");
if (sudoku[i][j] == 1)
System.out.print("1 ");
if (sudoku[i][j] == 2)
System.out.print("2 ");
if (sudoku[i][j] == 3)
System.out.print("3 ");
if (sudoku[i][j] == 4)
System.out.print("4 ");
if (sudoku[i][j] == 5)
System.out.print("5 ");
if (sudoku[i][j] == 6)
System.out.print("6 ");
if (sudoku[i][j] == 7)
System.out.print("7 ");
if (sudoku[i][j] == 8)
System.out.print("8 ");
if (sudoku[i][j] == 9)
System.out.print("9 ");
}
}
}
public static void main(String[] args) {
printBoard();
}
}
它现在打印什么?是否在任意点向数组分配整数?数组为空lol@RobertoNicbaAnićBanić这就是我所想的我知道它是空的,我只是先处理输出我不认为他关心打印的值,只关心输出的格式;System.out.printf%s,val==0?':瓦尔;如果你想避免很多If语句,你真的应该编辑你的第一个答案,而不是编写一个全新的答案
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
package hts;
public class HTS {
static int[][] sudoku = new int[9][9];
public static void printBoard() {
for (int i = 0; i < 9; i++) {
System.out.print("\n");
if(i%3==0)
System.out.print("\n");
for (int j = 0; j < 9; j++) {
if (j % 3 == 0)
System.out.print(" ");
if (sudoku[i][j] == 0)
System.out.print(". ");
if (sudoku[i][j] == 1)
System.out.print("1 ");
if (sudoku[i][j] == 2)
System.out.print("2 ");
if (sudoku[i][j] == 3)
System.out.print("3 ");
if (sudoku[i][j] == 4)
System.out.print("4 ");
if (sudoku[i][j] == 5)
System.out.print("5 ");
if (sudoku[i][j] == 6)
System.out.print("6 ");
if (sudoku[i][j] == 7)
System.out.print("7 ");
if (sudoku[i][j] == 8)
System.out.print("8 ");
if (sudoku[i][j] == 9)
System.out.print("9 ");
}
}
}
public static void main(String[] args) {
printBoard();
}
}
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .