Cita de: leosansan en 4 Enero 2014, 19:49 PMLo que suucede no es nada raro, es lo habitual en un scanf dentro de un bucle especialmente. Ocurre porque el último ENTER que introduces por teclado se queda en lo que se llama memoria intermedia o buffer, de forma que al corre el programa un bucle y encontrarse con otro scanf, como se había quedado con el ENTER en memoria, ejecuta la siguiente instrucción que requiera de un ENTER, lo tenía en memoria y antes de coger nuevos datos suelta ese que tiene.Esa es la solucion pero, por alguna razón, no la agregaste a tu programa. La sentencia en cuestión debe ser:
[...]
Una forma simple, en este caso, es lo que te comente de dejar un espacio en blanco en el scanf antes de escribir el %c.
Código (c) [Seleccionar]
scanf(" %c",&sex);
Un saludo