das das Programm das "getchar()" scheinbar nicht beachtet liegt daran das nach dem zweiten scanf() noch ein zeichen im Eingabepuffer (stdin) liegt (meistens ein Return [\n]). Dieses bleibt solang dort bis eine Funktion aufgerufen wird die von stdin ließt. getchar() ist so eine Funktion.
Du solltest generell nach jedem scanf() folgenden Code einfügen:
Code:
while ((c = getchar()) != EOF && c != '\n');
die variable c kannst du als int deklarieren.
Dieses Problem wird dir evtl später im Buch nochmal begegnen.