Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    185

    [C++][RISOLTO]controllo risultato

    ho questo pezzo di codice

    1.
    codice:
    giorno_anno=(((aaaa%100)/12)+((aaaa%100)%12)+((aaaa%100)%12)/4)%7+2;
    2.
    codice:
    cout<<"Giorno anno: "<<giorni[giorno_anno];
    2 stampa il giorno dell anno a seconda del valore restituito da 1, ad esempio se 1 restituisce 3 mi stampa "mercoledi", quello che voglio io, è che se 1 mi restituisce un numero sopra il 7, il conteggio deve riniziare da uno, ad esempio se 1 restituisce 10 come valore 2 deve restituire "mercoledi" (arrivo a 7, rinizio fino a 3).
    Non so se mi sono spiegato.

  2. #2
    Devi mettere con il titolo a che tipo di linguaggio è rivolto il post, esempio:

    [C++]controllo risultato.

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    185
    risolto facendo cosi...

    codice:
    while(giorno_anno>7){
            giorno_anno=1;
            giorno_anno++;
        }

  4. #4
    In effetti faresti prima ad usare l'operatore modulo (%)...
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    185
    e come

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    185
    io ho questo pezzo di codice:

    codice:
    int aaaa,giorno_anno=0;
        giorno_anno=0;
        cout<<"inserire anno ";
        cin>>aaaa;
        string giorni[8]={"","lunedi","martedi","mercoledi","giovedi","venerdi","sabato","domenica"};
    if(aaaa>1800 && aaaa<1899)
        {
            cout<<"Il giorno ancora di questo secolo e': "<<giorni[5]<<endl;
            giorno_anno=(((aaaa%100)/12)+((aaaa%100)%12)+((aaaa%100)%12)/4)%7+5;  // 5 e' Venerdì, l'ancora del secolo che va dal 1800 al 1899
        }
        cout<<giorno_anno<<endl;
        while(giorno_anno>7){
            giorno_anno=1;
            //giorno_anno++;
            cout<<"esegue controllo\n";
        }
    
        cout<<"Giorno anno: "<<giorni[giorno_anno];
    
        return 0;
    }
    ma se metto ad esempio 1853 come giorno anno mi dovrebbe restituire Sabato, invece mi da lunedi...dove sbaglio?

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    475
    codice:
    while(giorno_anno>7){
            giorno_anno=1;
            //giorno_anno++;
            cout<<"esegue controllo\n";
        }
    WTF!?

    Esaminiamo questo pezzo di codice:
    _ se giorno_anno <= 7, esce immediatamente
    _ se giorno_anno è maggiore di 7, giorno_anno = 1 (ora il valore contenuto è 1)
    _ aumenta giorno_anno (ora contiene 2)
    _ dato che giorno_anno <= 2, il ciclo termina: giorno_anno vale ora 2.

    Usa l'operatore modulo, come ti è stato consigliato prima.
    "Let him who has understanding reckon the number of the beast, for it is a human number.
    Its number is rw-rw-rw-."

  8. #8
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    185
    e dove lo applico il modulo?devo eliminare il while?

  9. #9
    codice:
    const char * giorni[]={"lunedi","martedi","mercoledi","giovedi","venerdi","sabato","domenica"};
    cout<<"Giorno anno: "<<giorni[giorno_anno%7];
    http://en.wikipedia.org/wiki/Modulo_operation
    Amaro C++, il gusto pieno dell'undefined behavior.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.