Declaras empleados e[3], sin haber hecho un typedef de la struct y luego usas la struct... etc etc.
Se consecuente con tus declaraciones y con los parámetros que tus funciones reciben y los argumentos que pasas al llamarlas.
Además ten cuidado con cosas como esta:
Debes pasar la referencia de d para poder modificarla.
Puede que te funcione.
Se consecuente con tus declaraciones y con los parámetros que tus funciones reciben y los argumentos que pasas al llamarlas.
Además ten cuidado con cosas como esta:
Código (c) [Seleccionar]
void ingresar(empleado d);
Debes pasar la referencia de d para poder modificarla.
Código (c) [Seleccionar]
#include <stdio.h>
typedef struct {
char nom[40];
int asiento[3];
} empleado;
void ingresar(empleado * d);
void asignarAsiento(empleado q[]);
void imprimir(empleado a);
int main()
{
int i;
empleado e[3];
asignarAsiento(e);
for (i=0; i<3; ++i)
imprimir(e[i]);
return 0;
}
void ingresar(empleado * d){
printf("Nombre: ");
scanf("%s", d->nom);
printf("Asiento: ");
scanf("%d", d->asiento);
}
void asignarAsiento(empleado e[]){
int i, j;
for(i=0; i<3; i++){
ingresar(&e[i]);
for(j=0; j<i; j++) {
if( *e[i].asiento == *e[j].asiento ){
printf ("Asiento ocupado. Vuelva a intentarlo.\n");
i--;
break;
}
}
}
}
void imprimir(empleado a){
printf("Nombre: %s\tAsiento: %d\n", a.nom, *a.asiento);
}
Puede que te funcione.