Lo de limpiar el buffer no es algo que me guste, lo veo chapucero, pero bueno...
Puedes evitarlo cambiando la llamada a scanf:Código
Por:
Código
Al utilizar " %c" el espacio le indica a la funcion que descarte todo espacio blanco, de forma similar a "%d", "%f", etc.
Un saludo