Buenos días, tengo este programa de estructuras con arreglos en C hecho en dev-c++. No me salen errores, pero al ejecutarlo no corre después de un punto y se cierra:
#include <stdio.h>
#include <string.h>
#include<conio.h>
struct fecha
{
int dia, mes, anyo;
};
typedef struct
{
char nombre[30], sexo[5];
fecha nacimiento;
float sueldo;
}empleados;
int i,p,d,m,a;
float may, men;
char nbr[30], sx[5];
void laf ();
main()
{
printf("Cuantos empleados son? ");
scanf("%d", p);
empleados n[p];
for(i=1;i<=p;i++)
{
printf("\nEcriba el nombre del empleado %d :",i);
scanf("%s",&n.nombre);
printf("\nEscriba su fecha de nacimiento:");
printf("\nDia: ");
scanf("%d",&n.nacimiento.dia);
printf("\nMes: ");
scanf("%d",&n.nacimiento.mes);
printf("\nAnyo: ");
scanf("%d",&n.nacimiento.anyo);
printf("\nEscriba su sexo (f/m): ");
scanf("%s",&n.sexo);
printf("\nEscriba su sueldo: ");
scanf("%f",&n.sueldo);
}
laf ();
getch();
}
void laf ()
{ empleados n[p];
may=n[1].sueldo;
for(i=1;i<=p;i++)
{
if(n.sueldo>may)
{
may=n.sueldo;
strcpy(nbr,n.nombre);
d=n.nacimiento.dia;
m=n.nacimiento.mes;
a=n.nacimiento.anyo;
strcpy(sx,n.sexo);
}
}
printf("\nEmpleado con mayor sueldo:\n\n ");
printf("\nNombre: %s ",nbr);
printf("\nFecha de nacimiento: ");
printf("\nDia: %d ",d);
printf("\nMes: %d ",m);
printf("\nAnyo: %d ",a);
printf("\nSexo: %s",sx);
printf("\nSueldo: %f",may);
men=n[1].sueldo;
for(i=1;i<=p;i++)
{
if(n.sueldo<men)
{
men=n.sueldo;
strcpy(nbr,n.nombre);
d=n.nacimiento.dia;
m=n.nacimiento.mes;
a=n.nacimiento.anyo;
strcpy(sx,n.sexo);
}
}
printf("\nEmpleado con menor sueldo:\n\n ");
printf("\nNombre: %s ",nbr);
printf("\nFecha de nacimiento: ");
printf("\nDia: %d ",d);
printf("\nMes: %d ",m);
printf("\nAnyo: %d ",a);
printf("\nSexo: %s",sx);
}
El problema está en que se pare después de ingresar la cantidad de empleados.
Agradecería cualquier sugerencia...