采用循环语句输出3行3列的格子无法对齐

各位好:
我要输出一个3行三列的各自,采用的是循环的方式,为什么第一个打印正常,第二行和第三行的行就对不上了,请帮忙看下

img


void DisplayBoard(char board[ROW][COL], int row, int col)
{
    int i = 0;
    for (i = 0; i < row; i++)
    {
        //1.打印行数据
        int j = 0;
        for (j = 0; j < col; j++)
        {
            printf(" %c ", board[i][j]);
            if(j-1)
               printf("|");
        }
        printf("\n");
            //2.打印分割行
        if (i < row - 1)
        {
            for (j = 0; j < col; j++)
            {
                printf("---");
                if(j-1)
                printf("|");
            }
            printf("\n");
        }

    }
}

board[i][j]里面要放个空格,不要放\0