|
|
|
#include "myMatrix.h"
|
|
|
|
|
|
|
|
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 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},
|
|
|
|
{8, 0, 0, 0, 6, 0, 0, 0, 3},
|
|
|
|
{4, 0, 0, 8, 0, 3, 0, 0, 1},
|
|
|
|
{7, 0, 0, 0, 2, 0, 0, 0, 6},
|
|
|
|
{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}};
|
|
|
|
int board1[9][9] = {{8, 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},
|
|
|
|
{8, 0, 0, 0, 6, 0, 0, 0, 3},
|
|
|
|
{4, 0, 0, 8, 0, 3, 0, 0, 1},
|
|
|
|
{7, 0, 0, 0, 2, 0, 0, 0, 6},
|
|
|
|
{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}};
|
|
|
|
int board2[9][9] = {{5, 2, 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},
|
|
|
|
{8, 0, 0, 0, 6, 0, 0, 0, 3},
|
|
|
|
{4, 0, 0, 8, 0, 3, 0, 0, 1},
|
|
|
|
{7, 0, 0, 0, 2, 0, 0, 0, 6},
|
|
|
|
{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(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;
|
|
|
|
}
|