Visualizzazione dei risultati da 1 a 4 su 4

Discussione: struct e funzioni

  1. #1

    struct e funzioni

    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

  2. #2
    così la compila
    Codice PHP:
    #include <iostream> 
    using namespace std;

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

    int confrontodata(Tpdata data1Tpdata data2);



    int main(){


        
    Tpdata data1data2;

        
    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(data1data2);

    }


    int confrontodata(Tpdata data1Tpdata data2){
        
    double n1n2;
        
    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

  3. #3
    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

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    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.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.