Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it L'avatar di Columb
    Registrato dal
    Dec 2005
    Messaggi
    35

    [C]Problema in C, HELP ME

    Premesso che del C...@school nn abbiamo fatto molto...3settimane max...
    mi è stato dato da fare questo problema...:
    Dato in input il mese e l'anno fornire in output il numero di giorni che compongono il mese.

    Sto facendolo con DEV-C++ ma nn riesco...mi dice:
    In function `int main()':
    16 expected primary-expression before "else"
    16 expected `;' before "else"
    23 expected primary-expression before "else"
    23 expected `;' before "else"
    [Build Error] [mese.o] Error 1

    Insomma nn so che fare...x questo vi chiedo aiuto, questo è quel che ho scritto.... ops: ops:
    #include <cstdlib>
    #include <iostream>

    using namespace std;
    char mese, gennaio, febbraio, marzo, aprile, maggio, giugno, luglio, agosto, settembre, ottobre, novembre, dicembre;
    int anno;
    int main(){
    cout<<"Inserisci il nome del mese con caratteri minuscoli"<<mese;
    cin>>mese;
    cout<<"Inserisci l'anno"<<anno;
    cin>>anno;
    {
    if(mese=aprile||giugno||settembre||novembre)
    {
    cout<<"Il mese dura 30 giorni"<< endl;
    else
    {
    if(mese=gennaio||marzo||maggio||luglio||agosto||ot tobre||dicembre)
    {
    cout<<"Il mese dura 31 giorni"<<endl;
    }
    }
    else
    {
    if(mese=febbraio)
    {
    if(anno%4=0)
    {
    cout<<"Il mese dura 29 giorni"<<;
    if(anno%4!=0)
    {
    cout<<"Il mese dura 28 giorni"<<;
    }
    }
    }
    system("PAUSE");
    return EXIT_SUCCESS;
    }
    }
    }
    }
    scusate se vi pongo il mio piccolo problema...

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,296

    Moderazione

    Per favore, usa titoli più significativi, come da Regolamento.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Utente di HTML.it L'avatar di Columb
    Registrato dal
    Dec 2005
    Messaggi
    35
    OK, scusa...

  4. #4
    Se non ho visto male ci sono problemi di parentesi graffe non chiuse o chiuse male, controlla

  5. #5
    Utente di HTML.it L'avatar di Columb
    Registrato dal
    Dec 2005
    Messaggi
    35
    Grazie, ma ora mi da questi errori:
    In function `int main()':
    27 non-lvalue in assignment
    [Build Error] [mese.o] Error 1

    CODICE::

    quote:#include <cstdlib>
    #include <iostream>

    using namespace std;
    char mese, gennaio, febbraio, marzo, aprile, maggio, giugno, luglio, agosto, settembre, ottobre, novembre, dicembre;
    int anno;
    int main(){
    cout<<"Inserisci il nome del mese con caratteri minuscoli"<<mese;
    cin>>mese;
    cout<<"Inserisci l'anno"<<anno;
    cin>>anno;
    {
    if(mese=aprile||giugno||settembre||novem
    bre)
    {
    cout<<"Il mese dura 30 giorni"<< endl;
    else
    {
    if(mese=gennaio||marzo||maggio||luglio||
    agosto||ottobre||dicembre)
    {
    cout<<"Il mese dura 31 giorni"<<endl;
    }
    }
    else
    {
    if(mese=febbraio)
    {
    if(anno%4=0)
    {
    cout<<"Il mese dura 29 giorni"<<;
    if(anno%4!=0)
    {
    cout<<"Il mese dura 28 giorni"<<;
    }
    }
    }
    system("PAUSE");
    return EXIT_SUCCESS;
    }
    }
    }
    }

  6. #6
    Originariamente inviato da zero85
    Se non ho visto male ci sono problemi di parentesi graffe non chiuse o chiuse male, controlla
    Questa riga:
    #include <cstdlib>
    non serve a niente eliminala.

    Bisogna anche fare attenzione nelle if l'operatore di
    assegnamento = è diverso da quello di confronto ==
    Inoltre credo che alle varibili con i nomi dei mesi debbano
    essere assegnati dei valori univoci per essere utilizzate
    poi per i controlli nelle if ( puoi usare enum {})
    Le definizioni delle variabili possono essere spostate
    all'interno del main().

    Ultimo usa il tag
    [*CODE]
    ...
    [*/CODE]
    (ovviamente senza gli asterischi) per inserire il codice,
    il [*QUOTE][*/QUOTE] non è adatto (non mantiene l'indentazione).

    Buon lavoro
    01010011 01100001 01101101 01110101 01100101 01101100 01100101 01011111 00110111 00110000
    All errors are undocumented features waiting to be discovered.

  7. #7
    Utente di HTML.it L'avatar di Columb
    Registrato dal
    Dec 2005
    Messaggi
    35
    enum nn ce l'hanno ancora spiegato....cmq grazie...ma l'errore alla riga 27 c'è ancora...

  8. #8
    Utente di HTML.it L'avatar di toraz
    Registrato dal
    Nov 2001
    Messaggi
    263
    Originariamente inviato da Columb
    l'errore alla riga 27 c'è ancora...
    Invece di
    codice:
    if(anno % 4 = 0)
    ci vuole
    codice:
    if(anno % 4 == 0)

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Originariamente inviato da Columb
    enum nn ce l'hanno ancora spiegato....cmq grazie...ma l'errore alla riga 27 c'è ancora...
    Hai letto bene il messaggio di Samuele ?

    = e == sono cose diverse ...

  10. #10
    Originariamente inviato da Columb
    enum nn ce l'hanno ancora spiegato....cmq grazie...ma l'errore alla riga 27 c'è ancora...
    Una variabile dichiarata, ma non assegnata può assumere
    qualsiasi valore (può differire a seconda del compilatore)
    Quindi quando controlli l'input immesso con il 'cin'
    di fatto fai il confronto della variabile 'mese' con un valore
    indefinito.

    Ma la tua intenzione èra quella di far scrivere proprio il nome del mese ?
    in quel caso la dichiarazione:

    char mese;

    non va bene (così dichiari solo un carattere) ti serve una variabile tipo stringa:

    char mese[200];

    ad esempio, lo stesso per tutte le variabili di controllo.

    Ma se puoi usare valori interi ti semplificheresti molto la vita.

    I controlli sono scritti male, ad esempio :

    if(mese=aprile||giugno||settembre||novembre)

    non ha senso in C.

    Le parentesi graffe sono messe qà e là, un pò a caso...
    01010011 01100001 01101101 01110101 01100101 01101100 01100101 01011111 00110111 00110000
    All errors are undocumented features waiting to be discovered.

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.