AYUDA URGENTE

david
12 de Agosto del 2003
NECESITO AYUDA CON ESTE PROGRAMA
#include <stdio.h>
# include <string.h>
#define nemesis 3
typedef struct empleado {
char nombre[30];
char direccion[40];
int sueldo;
};
struct empleado empleado[nemesis];
int main()
{
printf (" Umbrella Corporationnnn");

printf (" Registro de empleadosnn");
int num_emp;

char aux;
for( num_emp=0; num_emp<nemesis; num_emp++ )
{
printf( "nEmpleado número %i:nn", num_emp+1 );
printf( "Teclea el nombren: " );
gets(empleado[num_emp].nombre);
printf( "Teclea la direccionn: " );
gets(empleado[num_emp].direccion);
printf( "Teclea el sueldon: " );
scanf( "%i", &empleado[num_emp].sueldo );
while(getchar()!='n');
}

if (strcmp ( struct empleado.nombre[num_emp], struct empleado.nombre[num_emp+1])> 0)
{
strcpy (aux, struct empleado.nombre[num_emp]);
strcpy (struct empleado.nombre[num_emp],empleado.nombre[num_emp+1]);
strcpy (struct empleado.nombre[num_emp+1],aux);
}

for( num_emp=0; num_emp < nemesis ; num_emp++)
{
printf( "n Empleado(a): %sn ",struct empleado[num_emp].nombre );
printf( "Direccion: %sn ", struct empleado[num_emp].direccion );
printf( "El sueldo es de: %in ",struct empleado[num_emp].sueldo );
}
return(0);
return(0);
}
ME MARCA 3 ERRORES POR FAVOR AYUDEME URGENTEMENTE, SI ESPOSIBLE LA RESPUESTA ANTES DEL MIERCOLES, ES MI DERECHO A EXAMEN

Oliverio
12 de Agosto del 2003
Mira basicamente, todos tus problemas surgen de la forma en que declaras la struct, si la declaramos así:
struct MI_ESTRUCT {
...};
despues la utilisariamos así:
struct MI_ESTRUCT VarEstructura[3];
VarEstructura[0].sueldo = 2000;
Pero para ahorrarnos el struct para definir variables usamos un typedef:
typedef struct MI_ESTRUCT {
...} MiEstruct ;
despues la utilisariamos así:
MiEstruct VarEstructura[3];
VarEstructura[0].sueldo = 2000;
Otro error fue pasarle al strcpy una variable char y no un puntero a char como quiere la funcion, eso lo resolves con el operador &:
strcpy (&aux, empleado[num_emp].nombre);
Si es para un examen te recomiendo que repases bien estructuras y punteros.
Bueno aca tenes el codigo que anda JOYA:
#include <stdio.h>
#include <string.h>
#define nemesis 3

typedef struct UN_EMPLEADO {
char nombre[30];
char direccion[40];
int sueldo;
} UnEmpleado;

UnEmpleado empleado[nemesis];
int main()
{

printf (" Umbrella Corporationnnn");
printf (" Registro de empleadosnn");
int num_emp;
char aux;
for( num_emp=0; num_emp<nemesis; num_emp++ )
{
printf( "nEmpleado numero %i:nn", num_emp+1 );
printf( "Teclea el nombren: " );
gets(empleado[num_emp].nombre);
printf( "Teclea la direccionn: " );
gets(empleado[num_emp].direccion);
printf( "Teclea el sueldon: " );
scanf( "%i", &empleado[num_emp].sueldo );
while(getchar()!='n');
}
if (strcmp ( empleado[num_emp].nombre, empleado[num_emp+1].nombre)> 0)
{
strcpy (&aux, empleado[num_emp].nombre);
strcpy (empleado[num_emp].nombre,empleado[num_emp+1].nombre);
strcpy (empleado[num_emp+1].nombre, &aux);
}
for( num_emp=0; num_emp < nemesis ; num_emp++)
{
printf( "n Empleado(a): %sn ",empleado[num_emp].nombre );
printf( "Direccion: %sn ", empleado[num_emp].direccion );
printf( "El sueldo es de: %in ",empleado[num_emp].sueldo );
}
return(0);
}