C 打印下划线字符以代替整数0

C 打印下划线字符以代替整数0,c,arrays,for-loop,multidimensional-array,cs50,C,Arrays,For Loop,Multidimensional Array,Cs50,我正在做十五的游戏,因此实现了在终端上打印电路板的绘图功能。我的职能如下: void draw(void) { for(int i=0;i<d;i++) { for(int j=0;j<d;j++) { if (board[i][j] != 0) { printf("%2d ", board[i][j]); }

我正在做十五的游戏,因此实现了在终端上打印电路板的绘图功能。我的职能如下:

void draw(void)
{
    for(int i=0;i<d;i++)
    {
        for(int j=0;j<d;j++)
        {
            if (board[i][j] != 0)
            {
                printf("%2d ", board[i][j]);
            }
            else
            {
                printf(" _ ");
            }
        }
    printf("\n");
    }
}
void绘图(void)
{

对于(int i=0;i您可以找出单元格编号的最大长度,并使用该长度格式化
printf

char numstr[20];
int maxlen = sprintf(numstr, "%d", d * d - 1);
...
printf("%*d ", maxlen, board[i][j]);
...
printf("%*c ", maxlen, '_');

为什么不将参数传递给函数?从一开始就应该避免使用全局变量。因为您越是缺乏经验,全局变量就越危险,但是不熟练的程序员使用它们的次数要比专家多得多。实际上,请提供您遇到问题的确切代码,并进行描述很明显,它的输出出了什么问题。你实际上没有提出任何问题。而且,我认为它与3x3板配合得很好。4x4到底出了什么问题?你是否需要更改为
“%3d”
?@iharob在第二行的第二列中打印1,而我希望它打印10