Il problema potrebbe essere nella scanf perché il buffer rimane sporco per l'uso del tasto invio.
Dopo la scanf utilizza una linea

while(getchar()!='\n');