Tienes que limpiar el buffer de entrada después del scanf (o antes).
Tu piensa que el buffer va acumulando todo lo que escribes por teclado, cada vez que llamas a scanf se va recuperando lo que ahí se ha almacenado... y si está vacío la aplicación se queda esperando a que introduzcas los datos requeridos.
Una forma de limpiar el buffer puede ser:
Hay otras muchas alternativas, es cuestión de elegir la que más te guste.
Un saludo.
EDITO: Se me adelantaron con la respuesta :)