PDA

Visualizza la versione completa : struct e funzioni


wgd-developer
07-04-2008, 17:28
Salve, qualcuno sa dirmi perchè non gira questo codice?
io penso di aver sbagliato il richiamo alla function

int confrontodata(struct data1, struct data2);

using namespace std;
int main(){
struct Tpdata{
int giorno;
int mese;
int anno;
};
Tpdata data1, data2;
cout<<"inserisci la prima data"<<endl;
cout<<"giorno : ";
cin>>data1.giorno;
cout<<"mese : ";
cin>>data1.mese;
cout<<"anno : ";
cin>>data1.anno;
cout<<endl;
cout<<"inserisci la seconda data"<<endl;
cout<<"giorno : ";
cin>>data2.giorno;
cout<<"mese : ";
cin>>data2.mese;
cout<<"anno : ";
cin>>data2.anno;
cout<<endl<<"elaborando risulatato"<<endl;

cout<<confrontodata(Tpdata data1, Tpdata data2);

}


int confrontodata(Tpdata data1, Tpdata data2){
double n1, n2;
n1=data1.giorno+data1.mese*10+data1.anno*10000;
n2=data2.giorno+data2.mese*20+data2.anno*10000;

if(n1==n2)
return 0;
else if (n1>n2)
return 1;
else return -1;
}

grazie

mondobimbi
07-04-2008, 18:13
così la compila

#include <iostream>
using namespace std;

struct Tpdata {
int giorno;
int mese;
int anno;
} ;

int confrontodata(Tpdata data1, Tpdata data2);



int main(){


Tpdata data1, data2;

cout<<"inserisci la prima data"<<endl;
cout<<"giorno : ";
cin>>data1.giorno;
cout<<"mese : ";
cin>>data1.mese;
cout<<"anno : ";
cin>>data1.anno;
cout<<endl;
cout<<"inserisci la seconda data"<<endl;
cout<<"giorno : ";
cin>>data2.giorno;
cout<<"mese : ";
cin>>data2.mese;
cout<<"anno : ";
cin>>data2.anno;
cout<<endl<<"elaborando risulatato"<<endl;

cout << confrontodata(data1, data2);

}


int confrontodata(Tpdata data1, Tpdata data2){
double n1, n2;
n1=data1.giorno+data1.mese*10+data1.anno*10000;
n2=data2.giorno+data2.mese*20+data2.anno*10000;

if(n1==n2)
return 0;
else if (n1>n2)
return 1;
else return -1;
}
adesso controlla che faccia quello che vuoi
ciao
sergio

wgd-developer
07-04-2008, 18:45
Grazie,
ma mi sa che non funziona per quello che mi serve

Dovrei confrontare due date,
se sono uguali deve stampare 0,
se la prima > seconda 1
altrimenti -1

ho usato quel trucchetto x trasformare tutto in un double...

sai mica una soluzione...
grazie

oregon
07-04-2008, 18:54
In effetti quei calcoli che fai non hanno molto senso ...

Confronta l'anno e decidi. Se gli anni sono uguali confronta i mesi. Se anche questi sono uguali, confronta i giorni e decidi.

Loading