Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    programma che conta ogni tipo di vocale

    Ciao a tutti
    Stavo creando un programma che dati 5 caratteri (lettere) mi dice in output quante a,e,i,o,u abbiamo inserito:
    codice:
    #include <cstdlib>
    #include <iostream>
    
    using namespace std;
    
    int main(int argc, char *argv[])
    {char a=0,e=0,i=0,o=0,u=0;
     int k=0,car;
     while (k<5)  
     {
     cout<<"inserisci un carattere"<<endl;
     cin>>car;
     switch (car){
     case a:a++;
            break;
     case e:e++;
            break;  
     case i:i++;
            break;
     case o:o++;
            break;
     case u:u++;
            break;                     
     }
     k++; //incremento k
     }
     cout<<"le a sono "<<a<<endl;
     cout<<"le e sono "<<e<<endl; 
     cout<<"le i sono "<<i<<endl;
     cout<<"le o sono "<<o<<endl;  
     cout<<"le u sono "<<u<<endl;     
        system("PAUSE");
        return EXIT_SUCCESS;
    }
    non riesco a capire l' errore, potete aiutarmi?

  2. #2
    Utente di HTML.it L'avatar di linoma
    Registrato dal
    Mar 2010
    Messaggi
    1,346
    prova cn case 'a':
    Per gli Spartani e Sparta usa spartan Il mio github

  3. #3
    Scusa non ho capito.
    Nel primo case ci ho messo "a" e nel char va per forza "car" perchè è quello che deve esaminare

  4. #4
    secondo me devi usare gli apici singoli questi '

  5. #5
    Si li ho messi e me l' ha compilato soltanto che non funziona :

    codice:
    #include <cstdlib>
    #include <iostream>
    
    using namespace std;
    
    int main(int argc, char *argv[])
    {char a=0,e=0,i=0,o=0,u=0;
     int k=0,car;
     while (k<5)  
     {
     cout<<"inserisci un carattere"<<endl;
     cin>>car;
     switch (car){
     case 'a':a++;
            break;
     case 'e':e++;
            break;  
     case 'i':i++;
            break;
     case 'o':o++;
            break;
     case 'u':u++;
            break;                     
     }
     k++; //incremento k
     }
     cout<<"le a sono "<<a<<endl;
     cout<<"le e sono "<<e<<endl; 
     cout<<"le i sono "<<i<<endl;
     cout<<"le o sono "<<o<<endl;  
     cout<<"le u sono "<<u<<endl;     
        system("PAUSE");
        return EXIT_SUCCESS;
    }
    cioè mi chiede una sola volta di inserire un carattere e quando premo invio saltano fuori tutte le altre cose, se provate a compilarlo capirete meglio

  6. #6
    perche k lo incrementi fuori dal ciclo while?

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    1,326
    Originariamente inviato da gennahouse
    perche k lo incrementi fuori dal ciclo while?
    Non è fuori dal while, e fuori dallo switch... effettivamente l'indentazione mancante del codice non aiuta a capire ma se si fa attenzione si nota che è così.

    Comunque i problemi sono nei tipi di dato.

    Innanzitutto, perché hai dichiarato i contatori a, e, i, o, u di tipo char? Devono contenere dei numeri, quindi dichiarali di tipo int o simili. In realtà anche il tipo char andrebbe bene perché alla fine è sempre un tipo numerico intero, ma dovresti poi castarlo a int al momento della stampa e poi è contro la logica naturale che vorrebbe un contatore di numeri di tipo intero.

    Inoltre, "car" va dichiarato di tipo char e non int. Perché quest'inversione di tipi?

    Modifica e non dovresti avere problemi.
    every day above ground is a good one

  8. #8
    Si grazie infatti ora che ci penso ho messo le variabili nel posto sbagliato comunque piu o meno il programma era fatto bene ma la cosa dell " ' " xD non la sapevo, ok dai funge.
    Si può chiudere.

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