Beuh c´est quoi ton cours de C ?
scanf() ne lit que ce que tu lui demandes de lire, par exemple un entier avec %d. Mais l´utilisateur presse aussi la touche entrée, ce qui envoie un caractère ´\n´ dans l´entrée standard. En fait, c´est comme si il laissait un caractère à lire pour la prochaine fois.
Hors, ça tombe mal, après tu tentes de lire un caractère avec %c... donc ça tombe sur le caractère ´\n´, et il ne se passe rien.
getchar() lit un caractère.