Como ya te indico ivancea96 el error se debe al tipo de retorno de la función "leer" y el argumento que espera la función "imprimir".
La función "leer" debe recibir como argumento el nombre del array y retornar el mismo (es en realidad un puntero, eso ya lo veras mas adelante):
La función "imprimir" recibe ese puntero y retornar nada (void):
Por ultimo en la función main debes declarar el array, lo usual es indicar el numero de elementos con una macro:
Ademas deberías manejar el sexo como una variable de tipo char ('M', 'F', etc.). También debes evitar el uso de gets y fflush(stdin), mas información en la pagina |Lo que no hay que hacer en C/C++. Nivel basico|.
Un saludo
La función "leer" debe recibir como argumento el nombre del array y retornar el mismo (es en realidad un puntero, eso ya lo veras mas adelante):
Código (c) [Seleccionar]
struct persona *leer(struct persona persona[])
{
int i;
for (i = 0; i < NUM_PERSONAS; i++){
/* ... Lectura ... */
}
return persona;
}
La función "imprimir" recibe ese puntero y retornar nada (void):
Código (c) [Seleccionar]
void imprimir(struct persona persona[])
{
int i;
for (i = 0; i < NUM_PERSONAS; i++){
/* ... Escritura ... */
}
}
Por ultimo en la función main debes declarar el array, lo usual es indicar el numero de elementos con una macro:
Código (c) [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
#define NUM_PERSONAS 2
/* ... */
int main(void)
{
struct persona persona[NUM_PERSONAS];
imprimir(leer(persona));
return 0;
}
Ademas deberías manejar el sexo como una variable de tipo char ('M', 'F', etc.). También debes evitar el uso de gets y fflush(stdin), mas información en la pagina |Lo que no hay que hacer en C/C++. Nivel basico|.
Un saludo