Perche' c'e' questa linea ...

while(!getchar());

che va solo dopo la scanf ... ma nel caso 4 non c'e' la scanf ...