Las funciones leer e imprimir deben ser diferentes, no puede leer e imprimir en la misma funcion.
Lo que tengo es esto, y en la penultima linea, cuando llamo a la funcion imprimir me da un error de tipos.
(En la funcion leer me da un error "leve" que me dice que no encuentra return, pero si lo saco fuera del for creo que no va a funcionar como debe).
Os dejo el codigo:
Código:
#include <stdio.h>
#include <stdlib.h>
// nombre sexo y edad (personas)
//a) leer; b) mostrar
struct persona{
char nombre[50];
char sexo[10];
int edad;
};
struct persona leer (void){
struct persona p[10]; // creamos las personas correspondientes
int i;
for (i=0;i<2;i++){
printf("Nombre: ");
gets(p[i].nombre);
printf("\nSexo: ");
gets(p[i].sexo);
printf("\nEdad: ");
scanf("%d", &p[i].edad);
fflush(stdin); // limpia el buffer de entrada despues de leer un entero
return p[i];
}
}
void imprimir(struct persona p[10]){
int i;
for(i=0;i<2;i++){
printf("\n\n%s, %s de %d anyos.\n", p[i].nombre, p[i].sexo, p[i].edad);
}
}
int main(void) {
//leer();
imprimir(leer());
return 0;
}