【发布时间】:2020-12-21 01:41:38
【问题描述】:
我写了一个函数来显示每个数独框。但是我无法准确找到每个盒子的数量。 代码如下:
void Print_Box(void)
{
size_t i = 0U, j = 0U, k = 0U, m = 0U;
size_t col = 0 , row = 0, G_SIZE = 9, BOX_SIZE = 3;
for (; i < G_SIZE; i+=3)
{
row = (i/3)*3;
printf("Box number %zd\n",row+1);
for (j = 0; j < G_SIZE; j+=3)
{
col = (j/3)*3;
for (k = 0; k < BOX_SIZE; k++)
{
for (m = 0; m < BOX_SIZE; m++)
{
printf("[%d] ",Grid[row+k][col+m]);
}
putchar('\t');
}
puts("");
}
puts("");
}
return;
}
还有网格:
int Grid[9][9] =
{
{1,0,5,0,2,0,0,0,2},
{0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,2,0,0},
{0,0,0,0,0,0,0,0,0},
{0,8,0,0,0,0,0,0,0},
{0,0,8,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0}
};
这是输出:
Box number 1
[1] [0] [5] [0] [0] [0] [0] [0] [0]
[0] [2] [0] [0] [0] [0] [0] [0] [0]
[0] [0] [2] [0] [0] [0] [2] [0] [0]
Box number 4
[0] [0] [0] [0] [8] [0] [0] [0] [8]
[0] [0] [0] [0] [0] [0] [0] [0] [0]
[0] [0] [0] [0] [0] [0] [0] [0] [0]
Box number 7
[0] [0] [0] [0] [0] [0] [0] [0] [0]
[0] [0] [0] [0] [0] [0] [0] [0] [0]
[0] [0] [0] [0] [0] [0] [0] [0] [0]
在打印盒子之前显示每个盒子的编号的目标,但我想不出办法。有什么提示吗?
【问题讨论】:
-
你就不能像
printf("Box number %zd Box number %zd Box number %zd\n", row+1, row+2, row+3);那样做吗? -
可以使用 (row,col) Take paper and pencil 计算盒子编号。 (提示:让它成为一个函数)