int main(){ setsudoku();//特定问题 //initsudoku();//起始行为123456789 printsudoku(); if(getnext(0,0)){ printf("Get It!\n"); printsudoku(); } else{ printf("Not get it!\n"); } return 0; }
int solve(int i,int j) //Recursive Backtracking Function to find the legal value at a position {int k; if(i==9) { printsudoku(); exit(0); } while(A[i][j]!= -1) { if(j==8 ) { if(i<8) { i=i+1; j=0; } else { printsudoku(); exit(0); } } else j++; } if(A[i][j]==-1) {for(k=1;k<=9;k++) { if(legal(i,j,k)) { A[i][j]=k; if(j==8) solve(i+1,0); else solve(i,j+1); A[i][j]=-1; } } } }