Visualizzazione risultati 1 fino 15 di 15

Discussione: Programma in C++

  1. #1
    Guest

    Predefinito Programma in C++

    Visto che ho una verifica sul C++ martedi(terza liceo), mi son detto..."dai proviamo a fare qlk esercizio...""mi esercito un po' ...proviam ad usare switch che non lo ho mai usato in vita mia...i vettori li studio domani..."
    Fatto sta che ho pensato di creare un Quiz molto semplice...dopo aver scritto la prima domanda l'ho provato...e non funzia...
    Mi visualizza solo la frase finale....e per di + con il punteggio sbagliato...Qlkuno potrebbe darmi una mano a capire l'errore?...

    Codice:
    #include <cstdlib>
    #include <iostream>
    
    using namespace std;
    int k, r;
    int main()
    {   cout<<"Quale è la capitale dell'Italia?"<<endl;
        cout<<"1 Roma"<<endl<<"2 Milano"<<endl<<"3 Napoli"<<endl<<"4 Torino"<<endl;
        k=0;
        cin>>r;
        switch(r)
        { 
          case '1':
               cout<<"Risposta esatta!"<<endl;
               k=k+1;
               break; 
          case '2':
               cout<<"Risposta errata!"<<endl;
               break;
          case '3':
               cout<<"Risposta errata!"<<endl;
               break; 
          case '4':
               cout<<"Risposta errata!"<<endl;
               break; 
        }
        
        cout<<"Hai totalizzato "<<k<<" risposte esatte"<<endl;
        system("PAUSE");
        return EXIT_SUCCESS;
    }
    Help Me Please!

  2. #2
    Guest

    Predefinito

    tolgi gli apici ai numeri nello switch

  3. #3
    Guest

    Predefinito

    E per di più, quando invii la risposta esatta col cin>>r non invii "1","2","3","4" ma "1 Roma","2 Milano", ecc. Perciò il controllo dello switch non dovresti farlo così?
    Codice:
    case '1 Roma':
               cout<<"Risposta esatta!"<<endl;
               k=k+1;
               break;

  4. #4
    Guest

    Predefinito

    Citazione Originalmente inviato da SoulHome
    tolgi gli apici ai numeri nello switch
    Grazie mille.....


    Mi vergogno di me..........
    che errore.....

    EDIT:Ho visto solo ora il tuo post Joernano, forse hai ragione, ma ho messo nella domanda apposta i numeri 1 2 3 4 così x non far scivere i nomi delle città...Cmq grazie...
    Ultima modifica di worldfree : 30-04-2006 alle ore 19.52.43

  5. #5
    Guest

    Predefinito

    Citazione Originalmente inviato da JoErNanO
    E per di più, quando invii la risposta esatta col cin>>r non invii "1","2","3","4" ma "1 Roma","2 Milano", ecc. Perciò il controllo dello switch non dovresti farlo così?
    Codice:
    case '1 Roma':
               cout<<"Risposta esatta!"<<endl;
               k=k+1;
               break;
    Il cin serve per leggere (console input), il cout serve per scrivere (console output).
    Nello specifico il programma si aspetta l'input di un numero (1, 2, 3 o 4), quindi il case deve prevedere il confronto solo tra numeri (senza nessun apice).

    In oltre gli apici singoli delineano un solo carattere, quindi il confronto della stringa nel case, ammesso che sia ammissibile farlo, è comunque sbagliato

  6. #6
    Guest

    Predefinito

    Non capisco. Il programma si aspetta l'input di "numero città" e non solo del numero o sbaglio?

  7. #7
    Guest

    Predefinito

    il programma riceve l'input in una variabile int xcui deve trattarsi per forza solo di un numero...e poi così è più comodo...

  8. #8
    Guest

    Predefinito

    Perciò definendo
    Codice:
    int k
    il programma automaticamente seleziona il primo numero che trova nella stringa che riceve?

  9. #9
    Guest

    Predefinito

    con
    cin>>r;
    il programma riceve l'input e lo mette nella variabile r ke essendo stata definita come int può contenere solo un numero intero...pre ricevere una stringa si dovrebbe utilizzare la classe String e le relative funzioni

  10. #10
    Guest

    Predefinito

    E se la stringa ricevuta fosse stata "1 Roma 8" che numero avrebbe preso il cin??

  11. #11
    Guest

    Predefinito

    avrebbe preso solo 1

  12. #12
    Guest

    Predefinito

    Ok ti ringrazio SoulHome.

  13. #13
    L'avatar di radioradianti
    radioradianti non è connesso Utente storico
    Data registrazione
    26-11-2003
    Residenza
    Roma
    Messaggi
    1,000

    Predefinito

    Citazione Originalmente inviato da SoulHome
    avrebbe preso solo 1
    Sicuro?
    Non conosco molto bene il c++, ma se in c dichiaro una variabile di tipo int e tramite un semplice scanf ("%d",variabile) provo a mandargli un carattere alfanumerico, ricevo un bel core dump o sbaglio?

    Ciao

    Leandro

    E' on line il numero 12 di Topolinux - Totalmente rinnovato!
    TopoLinux è anche chat! irc.azzurra.org canale #topolinux
    La semplicità di questo dono è inversamente proporzionale alla qualità della nostra amicizia

  14. #14
    Guest

    Predefinito

    lo scanf è del c, il c++ agisce in modo diverso.
    Tanto per semplificare un po' le cose: quando scrivi cin>>i, il c++ vede tale parola come una chiamata alla funzione operator>>(cin, i) e quindi agisce di conseguenza a seconda del tipo di i.

  15. #15
    L'avatar di radioradianti
    radioradianti non è connesso Utente storico
    Data registrazione
    26-11-2003
    Residenza
    Roma
    Messaggi
    1,000

    Predefinito

    ok grazie per la delucidazione.
    Devo proprio aggiornarmi

    Ciao

    Leandro

    E' on line il numero 12 di Topolinux - Totalmente rinnovato!
    TopoLinux è anche chat! irc.azzurra.org canale #topolinux
    La semplicità di questo dono è inversamente proporzionale alla qualità della nostra amicizia

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •