urge ayuda con este codigo

hector
04 de Marzo del 2006
Tengo este pedazo de codigo pero en la linea que marco con el 7, al momento de llegar
ahi se termina el programa y no deberia alguien sabe que pasa?

#include <stdio.h>
#include <conio.h>

typedef struct {
char nombre[15];
char apellidos[30];
int edad;
char sexo;
float salario;
} Empleado;

main()
{
Empleado e1[10];
int i;

clrscr();
for(i=0;i<1;i++){
printf("Da el nombre del empleado: ");
gets(e1[i].nombre);
printf("Da los apellidos del empleado: ");
gets(e1[i].apellidos);
printf("Da la edad del empleado: ");
scanf("%d",&e1[i].edad);
printf("Da el sexo del empleado: ");
scanf("%c",&e1[i].sexo);
scanf("%c",&e1[i].sexo);
printf("Da el salario que percibe el empleado: ");
scanf("%f",&e1[i].salario); //linea 7
}





Caiman
04 de Marzo del 2006

Usa los gets para recoger ese tipo de cadenas. Y tu problema de que no lea los datos que le pides al usuario es que debes de limpiar el buffer de entrada, por el momento mi grado de estúpidez no me ha permitido encontrar una buena forma de hacerlo; por lo que recurro a fflush(stdin), esto limpiara el buffer de entrada, pero esta claro que no es estándar.

Si quieres usarlo tendrías que poner:

--
printf("Da el nombre del empleado: ");
fflush(stdin);
gets(e1[i].nombre);
--

NOTA. Cuando uses el gets cuidado con los overflows.

RA007
04 de Marzo del 2006
porque para el sexo pones dos scanf, ese es el primer error, ademas no se debe mezclar scanf con gets, o usas en todos uno, o usas en todos lo otro