Perché ogni volta che fai scanf("%c", ...) leggi un solo carattere, e il resto dell'input inserito resta nel buffer, e viene quindi prelevato dalle successive getchar() e scanf, che vengono "soddisfatte" già dalla prima stringa data in input.
Perché ogni volta che fai scanf("%c", ...) leggi un solo carattere, e il resto dell'input inserito resta nel buffer, e viene quindi prelevato dalle successive getchar() e scanf, che vengono "soddisfatte" già dalla prima stringa data in input.
Amaro C++, il gusto pieno dell'undefined behavior.