I think my problem is my if else statement cluster but I can't seem to determine what went wrong. I have a sneaking suspicion it has something to do with syntax.
If it's a syntax problem the compiler will tell you and you're not going to be able to run the program at all.
The program stops after it has done what it's instructed to do. You first assign a 1 to the 3,4 position. Then you assign a 1+1 to the 3-2, 4+1 position. That's it. You don't have a loop or a recursive call or anything that would continue the program, so it terminates.
As nuzzle pointed out, this accomplishes nothing. What you probably want instead is a terminating base condition of counter == 64, and a for-loop that calls the method recursively for each legal move from the current position of the knight. By legal move I mean a position that is not outside the bounds of the board, and that you haven't already visited. The skeleton of a solution looks like this:
if ( counter == 64 )
// done, print solution
for ( size_t i = 0; i < 8; ++i )
// compute newMoveRow by indexing into horizontal, adding value to currentRow
// compute newMoveCol by indexing into vertical, adding value to currentCol
if ( isLegalMove( board, newMoveRow, newMoveCol, i ) )
// record move on board: board[ newMoveRow, newMoveCol ] = count + 1
// recursive call, pass as parameters board, nextMoveRow, nextMoveCol, counter+1
// clear previous move: board[ newMoveRow, newMoveCol ] = 0