Jelou
Me decidi meter con el lenguaje C hace unos dias y ya estoy haciendo algun programita para ir practicando, y decidi hacer uno, que tomando 2 fechas te calcule la distancia temporal (dias meses años) entre ambas (muy tipiko pa ir empezando ;)).
y ya lo tengo hecho, pero me da un error al pasar por referencia una estructura de datos, no se si es por que no entendi bien lo de los punteros o ke, os pongo el codigo y el error q me devuelve:
#include "stdio.h"
#include "stdlib.h"
typedef struct Datos{
int Anio,Mes,Dia;
}tDatos;
tDatos Actual,Dest,Resul;
void Conversor( tDatos AnioAct,tDatos AnioDest,tDatos *Resultado)
{
*Resultado.Anio = AnioDest.Anio - AnioAct.Anio;
*Resultado.Mes = abs(AnioDest.Mes - AnioAct.Mes);
*Resultado.Dia = abs(AnioDest.Dia - AnioAct.Dia);
}
void main () {
printf("Escribe la fecha actual (Dia Mes Año): ");
scanf("%d %d %d",&Actual.Dia,&Actual.Mes,&Actual.Anio);
printf("/nEscribe la fecha futura (Dia Mes Año): ");
scanf("%d %d %d",&Dest.Dia,&Dest.Mes,&Dest.Anio);
Conversor(Actual,Dest, &Resul);
printf("/n/nLa distancia temporal entre ambas fechas es de:");
printf("%d Días %d Meses %d Años",Resul.Dia,Resul.Mes,Resul.Anio);
}
Errores:
C:\Omar\programacion\anios.cpp(12) : error C2228: left of '.Anio' must have class/struct/union type
C:\Omar\programacion\anios.cpp(13) : error C2228: left of '.Mes' must have class/struct/union type
C:\Omar\programacion\anios.cpp(14) : error C2228: left of '.Dia' must have class/struct/union type
estoy bajo VC++ 6.0 (aunq no creo q importe), aver si me decis en que falla, q ya mire por manuales y no se donde puede estar el fallo :(
thx de antemano
En vez de con esto:
void Conversor( tDatos AnioAct,tDatos AnioDest,tDatos *Resultado)
{
*Resultado.Anio = AnioDest.Anio - AnioAct.Anio;
*Resultado.Mes = abs(AnioDest.Mes - AnioAct.Mes);
*Resultado.Dia = abs(AnioDest.Dia - AnioAct.Dia);
}
prueba con esto:
void Conversor( tDatos AnioAct,tDatos AnioDest,tDatos *Resultado)
{
Resultado->Anio = AnioDest.Anio - AnioAct.Anio;
Resultado->Mes = abs(AnioDest.Mes - AnioAct.Mes);
Resultado->Dia = abs(AnioDest.Dia - AnioAct.Dia);
}
Saludos.
aps, ya va :D
muchas gracias (vaya rapidez en responder)
encima ya me di cuenta que tenia que haber puesto \n y no /n :)