#include <stdio.h>
#include <stdlib.h>
#define NUM 9
void solution(int [][NUM]);
//打印数独
void mydisplay(int[][NUM]);
//找到当前数组中的第一个空
void findfistemptyposition(int shudu[][NUM],int*,int*);
//p指向一个数组,{1,2,3,4,5,6,7,8,9},将指定空缺中不可填的数字设置为零
void findpossiblenum(int shudu[][NUM],int *,int,int);
int main(void)
{
//用二维数组定义数独,其中为零的地方是需要填写数字的地方
int shudu[NUM][NUM]=
{
{7,8,1,6,0,2,9,0,5},
{9,0,2,7,1,0,0,0,0},
{0,0,6,8,0,0,0,1,2},
{2,0,0,3,0,0,8,5,1},
{0,7,3,5,0,0,0,0,4},
{0,0,8,0,0,9,3,6,0},
{1,9,0,0,0,7,0,8,0},
{8,6,7,0,0,3,4,0,9},
{0,0,5,0,0,0,1,0,0},
};
solution(shudu);
return 0;
}
void solution(int shudu[][NUM])
{
//寻找当前数独第一个空缺位置
int firstemptyline=NUM,firstemptycolumn=NUM;
findfistemptyposition(shudu,&firstemptyline,&firstemptycolumn);
//如果找不到空缺,即数独已经填满,则打印数独
if(firstemptyline==NUM&&firstemptycolumn==NUM)
{
printf("满足要
数独程序
最新推荐文章于 2024-05-10 17:54:57 发布