1

我正在寻找有关如何从左到右打印二维数组的见解,而不是用换行符在页面上级联。

我为本科 AI 课程编写了一个简单的程序,可以解决那个 9 块小游戏。

public void printNode(){
    for(int i = 0; i < 3; i ++){
        System.out.printf("[ ");
        for(int k = 0; k < 3; k++){
            System.out.printf(" " + state[i][k] + " ");
        }
        System.out.printf("]\n");
    }
}

这可以毫无问题地打印二维数组。

但是我正在寻找一种从左到右打印数组的方法,这样我就不必提交 50 多页的转换来证明我的程序有效。以前有没有人解决过这个问题?

[ 1 2 3 ] [1 2 3]
[ 8 0 4 ] [8 0 4]
[ 7 6 5 ] [7 6 5]

这就是我想要创造的效果。转换的解决路径是一系列指向链的指针。我的每个节点都有一个指向其祖先的指针。所以我可以轻松地按照指针返回并将它们全部打印出来。

4

2 回答 2

0

我不打算在这里讨论实现细节,但这里有一些你可以采取的步骤

  • 打印每个矩阵的所有顶行,所以你会有一个字符串

[ 1 2 3 ] [1 2 3]

  • 添加一个换行符,并打印所有矩阵的下一行。

[ 1 2 3 ] [1 2 3]
[ 8 0 4 ] [8 0 4]

  • 继续直到打印整个矩阵。

[ 1 2 3 ] [1 2 3]
[ 8 0 4 ] [8 0 4]
[ 7 6 5 ] [7 6 5]

基本上你遍历每个矩阵等于它们的高度。如果他们有不同的高度,你可以开始跳过较短的,并在它的地方留一个空白。

于 2013-03-22T16:56:52.957 回答
0
public void printTwoNodes(int arr[], int arr2[]){
    for(int i = 0; i < 3; i ++){
        System.out.printf("[ ");
        for(int k = 0; k < 3; k++){
            System.out.printf("" + arr[i][k] + " ");
        }
        System.out.printf("]");
        System.out.printf("[ ");
        for(int j = 0; j < 3; j++){
            System.out.printf("" + arr2[i][j] + " ");
        }
        System.out.printf("]\n");
    }
}

可以而且应该改进

于 2013-03-22T16:59:10.853 回答