> else if (j=0)
Well this will mess up the logic.
Try ==

Here's a first test.
Create a completed sudoku grid, remove just one number, and then see if your program can 'solve' it.