【发布时间】:2017-07-16 16:46:53
【问题描述】:
基本上这是一个数独游戏,我们让程序通过控制台运行
每个 Argv 参数由 9 位数字组成(一个点可以代替缺失的数字),它们被写入二维数组,如下所示:
./sudoku "9...7...." "2...9..53" ".6..124.." "84...1.9." "5.....8.." ".31..4..." "..37..68."
".9..5.741" "47......."
并且数组值必须是:
array[0][0] = 9, array[0][1] = 0, ..., array[8][0] = 4, ...
主要片段:
int main(int argc, char **argv)
{
int s_f[9][9];
int i;
int j;
i = 1;
j = 0;
if (argc != 10)
write(1, "Error\n", 6);
else
{
我正在尝试使用的代码如下:
while (i < 10)
{
j = 0;
while(j < 9)
{
s_f[i - 1][j] = write(1, &(argv[i][j]), 1);
j++;
}
write(1, "\n", 1);
i++;
}
write(1, "\n", 1);
}
如果参数中有零而不是数字,则应将其替换为零。
关于如何读取 Argv 参数并将它们放入 int 的任何想法,以便继续寻找解决方案会更容易?
附:唯一允许的函数是 write、malloc 和 free。
附言允许使用 Atoi。
【问题讨论】:
-
喜欢this ?