diff --git a/1.3(yi) b/1.3(yi) new file mode 100644 index 0000000..e7b993b --- /dev/null +++ b/1.3(yi) @@ -0,0 +1,67 @@ +#include +#include +int arr[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}}; +void Print(); +void Judge(); +int main() +{ + Print(); + Judge(); + return 0; +} + +void Print(){ + printf("The original Sudoku matrix: \n"); + for(int i=0;i<9;i++){ + for(int j=0;j<9;j++){ + printf("%d ",arr[i][j]); + } + printf("\n"); + } +} + +void Judge(){ + for(int i=0;i<9;i++){ + for(int j=0;j<9;j++){ + if(arr[i][j]){ + int x=i+1,y=j+1; + for(y;y<9;y++){ + if(arr[i][j]==arr[i][y]){ + printf("False:Invalid initial Sudoku matrix!\n"); + printf("The number %d in the col %d has been used!",arr[i][j],y+1); + return; + } + } + for(x;x<9;x++){ + if(arr[i][j]==arr[x][j]){ + printf("False:Invalid initial Sudoku matrix!\n"); + printf("The number %d in the row %d has been used!",arr[i][j],x+1); + return; + } + } + int a=i/3*3,b=j/3*3; + int m=a*3+b/3+1; + for(int k=0;k<=2;k++){ + for(int l=0;l<=2;l++){ + if(arr[a][b]==arr[i][j]&&a!=i&&b!=j){ + printf("False:Invalid initial Sudoku matrix!\n"); + printf("The number %d in the block %d has been used!",arr[i][j],m); + return; + } + b++; + } + a++; + b=j/3*3; + } + } + } + } +} \ No newline at end of file