关于#c语言#的问题,如何解决?

感谢了各位
遇到了一个不解之谜
本人在肝三子棋游戏代码的时候
在打印棋盘函数里面遇到了自己解决不了的问题
借鉴了许多代码 还有自己的逻辑思考还是没能想出来是为什么
求各位解答一下[感动]


```c
void DisplayBoard(char board[ROW][COL], int row, int col)
{
    int i = 0;
    for (i = 0; i < row; i++)        //初始化不能省略
    {
            int j = 0;
            for (j = 0; j < col; j++)            //初始化不能省略
            {
                {
                    printf(" %c ", board[i][j]);
                    if ( j  <  col -1 )
                        printf("|");
                }
                printf("\n");
                if (i < col - 1)
                {
                    
                    for (j = 0; j < col; j++)        //初始化不能省略
                    {
                        printf("---");
                        if ( j < col - 1)
                            printf("|");
                    }
                    printf("\n");
                }


            }

        
    }
}
![img](https://img-mid.csdnimg.cn/release/static/image/mid/ask/414087610866176.png "#left")


```

修改如下,供参考:

#include <stdio.h>
#define ROW 3
#define COL 3
void DisplayBoard(char board[][COL], int row, int col)
{
    int i = 0, j = 0;
    for (i = 0; i < row; i++)//初始化不能省略
    {
        for (j = 0; j < col; j++)//初始化不能省略
        {
            printf(" %c ", board[i][j]);
            if (j < col - 1)
                printf("|");    
        }
        printf("\n");
        if (i < col - 1)
        {
            for (j = 0; j < col; j++)//初始化不能省略
            {
                printf("---");
                if (j < col - 1)
                    printf("|");
            }
            printf("\n");
        }
    }
}
int main()
{
    int  row = 3, col = 3;
    char board[ROW][COL] = {'0','1','2','3','4','5','6','7','8'};
    DisplayBoard(board, row, col);
    return 0;
}