From d7f2ce010336527a03476d57fc19e82a5210fa41 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=AB=98=E4=B8=96=E6=B3=A2?= <2783626707@qq.com> Date: Sat, 21 Oct 2023 23:42:58 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=BB=E5=8A=A14=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vscode/tasks.json | 28 +++++++++++++++++++++++++++ fillMatrix.c | 47 +++++++++++++++++++++++++++++++++++++-------- fillMatrix.exe | Bin 0 -> 59171 bytes 3 files changed, 67 insertions(+), 8 deletions(-) create mode 100644 .vscode/tasks.json create mode 100644 fillMatrix.exe diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 0000000..26b914f --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,28 @@ +{ + "tasks": [ + { + "type": "cppbuild", + "label": "C/C++: gcc.exe 生成活动文件", + "command": "C:\\Users\\GaoShiBo\\software\\mingw64\\bin\\gcc.exe", + "args": [ + "-fdiagnostics-color=always", + "-g", + "${file}", + "-o", + "${fileDirname}\\${fileBasenameNoExtension}.exe" + ], + "options": { + "cwd": "${fileDirname}" + }, + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + }, + "detail": "调试器生成的任务。" + } + ], + "version": "2.0.0" +} \ No newline at end of file diff --git a/fillMatrix.c b/fillMatrix.c index d0e973b..4083d21 100644 --- a/fillMatrix.c +++ b/fillMatrix.c @@ -1,10 +1,31 @@ #include "myMatrix.h" -int fillMatrix(){ - //todo +int fillMatrix(int matrixArr[9][9], int row, int col){ + if(row==9){ + return 1; + } + if(col==9){ + return fillMatrix(matrixArr,row+1,0); + } + if(matrixArr[row][col]!=0){ + return fillMatrix(matrixArr, row, col+1); + } + for(int i=1;i<=9;i++){ + matrixArr[row][col]=i; + if(checkMatrix(matrixArr,0)){ + if(fillMatrix(matrixArr,row,col+1)){ + return 1; + } + matrixArr[row][col]=0; + }else{ + matrixArr[row][col]=0; + } + } + return 0; } -int main(){ +int main() +{ int board0[9][9] = {{5, 3, 0, 0, 7, 0, 0, 0, 0}, {6, 0, 0, 1, 9, 5, 0, 0, 0}, {0, 9, 8, 0, 0, 0, 0, 6, 0}, @@ -32,12 +53,22 @@ int main(){ {0, 6, 0, 0, 0, 0, 2, 8, 0}, {0, 0, 0, 4, 1, 9, 0, 0, 5}, {0, 0, 0, 0, 8, 0, 0, 7, 9}}; - printf("The original Sudoku matrix: \n"); - matrixOutput(board1); - if(checkMatrix(board1,1)){ - fillMatrix(); - }else{ + matrixOutput(board0); + if (checkMatrix(board0, 1)) + { + if (fillMatrix(board0, 0, 0)) + { + printf("\nThe solution of Sudoku matrix:\n"); + matrixOutput(board0); + } + else + { + printf("\nNo solution!"); + } + } + else + { printf("\nNo solution!"); } return 0; diff --git a/fillMatrix.exe b/fillMatrix.exe new file mode 100644 index 0000000000000000000000000000000000000000..e39d7e0b83e6264e6ef8329647afeb702fa90a5b GIT binary patch literal 59171 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