Se inserisci un carattere e premi Invio il primo carattere viene recuperato dalla scanf, mentre il secondo (l'Invio) rimane nel buffer di stdin, per cui viene letto dalla scanf al giro successivo senza attendere ulteriore input dall'utente. Per rimediare, inserisci dopo la scanf:
codice:while(getchar()!='\n') ;