Antes, un consejo: el \n colocalo dentro del printf no tienes que ponerlo después de este y antes del scanf. Además, se guarda dato por dato, no quieras guardar dos cadenas diferentes al mismo tiempo. Otra cosa, si estás usando else no pongas otro if en él que no necesitas. Te sugiero que lo hagas así:
Código C++:
Ver originalchar nombre[40], ape1[20], ape2[20], sexo;
int edad;
printf("Apellido paterno:\n "); printf("Apellido materno: \n");
//La otra parte
Ojalá ya con eso se corrija el programa. Lo digo porque a veces (ya me ha pasado) los programas aparentemente están bien pero el problema es el compilador.
Saludos.