17/02/2008, 13:58
|
| | Fecha de Ingreso: enero-2008
Mensajes: 22
Antigüedad: 16 años, 10 meses Puntos: 0 | |
Re: Pasar estructuras por referencia Dejo aquí un programa que hice, por si a alguien le sirve ^^
Espero que ayude a comprender el paso de estructuras a referencias. He hecho una estructura anidada, y lo he pasado de todos los modos posibles creo :P
Código:
#include <stdio.h>
#define MIEMBROS 5
struct fecha
{
int year;
int month;
int day;
};
struct persona
{
char nombre[20];
int edad;
struct fecha birthday;
};
void LeerDatos(struct persona *yo)
{
puts("Nombre");
scanf("%s",yo->nombre);
puts("Edad");
scanf("%d",&yo->edad);
printf("Año de nacimiento");
scanf("%d",&yo->birthday.year);
printf("Mes de nacimiento");
scanf("%d",&yo->birthday.month);
printf("Día de nacimiento");
scanf("%d",&yo->birthday.day);
}
void VerDatos(struct persona yo)
{
printf("\n%s",yo.nombre);
printf("\n%d\n",yo.edad);
printf("%d/%d/%d\n",yo.birthday.day,yo.birthday.month,yo.birthday.year);
}
void LeerFamilia (struct persona * familia)
{
int x;
for (x=0;x<MIEMBROS;x++)
{
puts("Nombre");
scanf("%s",familia[x].nombre);
puts("Edad");
scanf("%d",&familia[x].edad);
puts("Año de nacimiento");
scanf("%d",&familia[x].birthday.year);
puts("Mes de nacimiento");
scanf("%d",&familia[x].birthday.month);
puts("Día de nacimiento");
scanf("%d",&familia[x].birthday.day);
}
}
void VerFamilia(struct persona * familia)
{
int x;
for (x=0;x<MIEMBROS;x++)
{
puts("Nombre");
printf("%s\n",familia[x].nombre);
puts("Edad");
printf("%d\n",familia[x].edad);
puts("Año de nacimiento");
printf("%d\n",familia[x].birthday.year);
puts("Mes de nacimiento");
printf("%d\n",familia[x].birthday.month);
puts("Día de nacimiento");
printf("%d\n",familia[x].birthday.day);
}
}
int main()
{
struct persona yo;
LeerDatos(&yo);
VerDatos(yo);
struct persona familia[MIEMBROS];
LeerFamilia(familia);
VerFamilia(familia);
return 0;
}
|