Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2016
    Messaggi
    5

    [c++] Esercizio su stringhe/array

    Salve a tutti, sto studiando c++ da 1-2 mesetti insieme alla scuola e anche per conto mio. Ho un esercizio in cui bisogna chiedere all'utente di inserire un mese e successivamente se il mese corrisponde ad uno dei mesi che ho messo io esce la scritta "il tuo mese ha 31 giorni", altrimenti "Il tuo mese non ha 31 giorni"... E' un esercizio facile ma non capisco come posso fare a confrontare il mese con tutti gli altri in un unico if, dato che se uso l'or qualsiasi cosa scrivo mi dice che ha 31 giorni.
    Ecco il codice:

    #include <iostream>
    #include <string>
    using namespace std;
    int main()
    {

    string parole;
    cin>>parole;

    if(parole=="gennaio" || "marzo" || "maggio")
    {
    cout<<"Il mese ha 31 giorni";
    }
    else
    {
    cout<<"Il mese non ha 31 giorni";
    }

    system("pause");
    return 0;
    }

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    213
    Ciao. L'errore sta nelle condizioni dell'if.

    Come hai scritto tu è sbagliato poichè devi riscrivere sempre la variabile da confrontare:

    codice:
    if(parole=="gennaio" || parole=="marzo" || parole=="maggio")

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2016
    Messaggi
    5
    Quote Originariamente inviata da Eduadie Visualizza il messaggio
    Ciao. L'errore sta nelle condizioni dell'if.

    Come hai scritto tu è sbagliato poichè devi riscrivere sempre la variabile da confrontare:

    codice:
    if(parole=="gennaio" || parole=="marzo" || parole=="maggio")
    Ora va, ma facendo un do-while per rifare il programmino in base alla sua risposta se vuole continuare mi dice:
    [Error] 'risposta' was not declared in this scope

    Ma a me pare che sia tutto giusto.. ecco il codice:

    #include <iostream>
    #include <string>
    using namespace std;
    int main()
    {

    do{

    cout<<"Inserisci il mese da analizzare: ";
    string mese;
    cin>>mese;

    if(mese=="gennaio" || mese=="marzo" || mese=="maggio" || mese=="luglio" || mese=="agosto" || mese=="ottobre" || mese=="dicembre")
    {
    cout<<"Il tuo mese ha 31 giorni"<<endl;
    }
    else if(mese=="febbraio")
    {
    cout<<"Il mese ha 29 giorni"<<endl;
    }
    else
    {
    cout<<"Il mese ha 30 giorni"<<endl;
    }

    cout<<"Vuoi ricominciare? [si/no]"<<endl;
    string risposta;
    cin>>risposta;

    }while(risposta=="si");

    system("pause");
    return 0;
    }

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    213
    Anche se il ciclo verrà comunque fatto una volta (do-while) devi comunque dichiarare la variabile prima di utilizzarlo.

    codice:
    string risposta;
    va posto fuori dal do-while.

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2016
    Messaggi
    5
    Grazie ora funziona ma perché il string deve essere posto fuori dal do-while? Il primo string che ho fatto cioè "string mese" è dentro al ciclo ma non da problemi...

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    213
    Perchè risposta lo usi come condizione del do-while quindi va dichiarato prima.

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.