我为我的班级配备了数独检查器,我的任务是能够创建一个代码,询问用户想要解决多少个谜题然后他们自己输入所有数字。在输入所有数字后,输出将是"是"或"否"作为对谜题是否正确的回应。到目前为止,我已经能够操纵代码让用户输入所有数字,但我仍然坚持如何能够检查同一行,列和3x3方格中的每个数字是否都不是重复。关于如何帮助我开始检查的任何提示都会感激不尽,因为我完全被这部分困扰了。
到目前为止我的代码
#include <stdio.h>
#define COL 9
int main (void)
{
int n, i, j,array[100][COL];
int check=0;
scanf("%d", &n); //Enter how many puzzles you want to solve
//For loop that goes through every position in the puzzle(s)
for(i=0;i<n*9;i++)
{
for(j=0;j<COL;j++)
{
//array[i][j]=0;
//printf("Array[%d][%d]=%d\n", i,j,array[i][j]);
scanf("%d", &array[i][j]); //User entry for puzzle(s)
}
}
return 0;
}
答案 0 :(得分:1)
首先,您不需要100号的数组。
然后,你的问题是什么?首先,您必须阅读用户的输入,这是您基本上要做的。
之后,您必须执行3次检查:
如果您展示了一些代码,我们会帮您解决问题。其他意见,去完成这件事。
答案 1 :(得分:0)
当前声明数组的方法(作为2d矩阵)存在问题。
建议声明一个3d数组:int array [numArrays] [9] [9];
然后通过3级嵌套循环遍历这些数组。
outer loop for each separate array,
middle loop for each row,
inner loop for each column.
即便如此,用户希望将81个条目乘以数组的数量是值得怀疑的。
如果用户要输入完成的suduku数组,那可能是必要的,
但是,如果用户只输入未解析数组的初始值,
如果用户可以输入行,列,值可能会好得多。
用户仍有很多(容易出错的)条目。
让用户填写数据文件(或文件)并且程序能够快速读入文件可能非常值得。
这样的文件看起来可能类似于:
1 <-- array number
12_5_7_9_ <-- value for first row columns
etc <-- value for second through ninth row columns
<-- when _ means entry empty
<-- blank line between array initial values