Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Chorrada Estructuras De Datos

Iniciado por nsL, 30 de Junio de 2004, 07:20:41 PM

« anterior - próximo »

nsL

 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
Yo no muero hasta la muerte -

BeRSeRKeR

 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.
¡Si te buscan en nombre de la ley, huye en nombre de la libertad!!

nsL

 aps, ya va :D
muchas gracias (vaya rapidez en responder)
encima ya me di cuenta que tenia que haber puesto \n y no /n  :)  
Yo no muero hasta la muerte -






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.