Programma c++ conteggio vocali con funzioni

di il
4 risposte

Programma c++ conteggio vocali con funzioni

Il professore ci ha dato un esercizio in cui chiedeva, tramite funzioni, di contare le vocali in un vettore.

Io ho fatto questo:

#include <iostream>

using namespace std;

Int contvoc(char vett[10]){

      int voc;

      for(int i=0;i<10; i++){

          if(vett[i]=='a' || vett[i]=='e' || vett[i]=='i' || vett[i]=='o' || vett[i]=='u'

           || vett[i]=='A' || vett[i]=='E' || vett[i]=='I' || vett[i]=='O' || vett[i]=='U')

           {voc++;}

      }

      return voc;

}

int main(){

    Char vett2[10];

    Int numvocali;

    for(int i=0; i<10; i++){

        cout<<"inserire il carattere numero: "<<i+1<<"\n";

        cin>>vett2[i];

    }

    numvocali=contvoc(vett2[10]);

    cout<<"\n";

    cout<<"\n";

    cout<<"il numero di vocali presenti nel vettore e': "<<numvocali;

    return 0;

}

Ma mi dice che “dove c’è scritto: numvocali=contvoc(vett2[10]);“, non si può convertire da ” char a char*” e mi da errore, mi potreste aiutare?

4 Risposte

  • Re: Programma c++ conteggio vocali con funzioni

    Deve essere

    numvocali=contvoc(vett2);

    Cerca di capire da solo il perché 

  • Re: Programma c++ conteggio vocali con funzioni

    Quanto sei crudele oregon :)

    La domanda giusta è: a scuola avete fatto i puntatori?

  • Re: Programma c++ conteggio vocali con funzioni

    Era un invito a ragionare per imparare

  • Re: Programma c++ conteggio vocali con funzioni

    Sembra che il problema sia nel modo in cui si chiama la funzione contvoc. Nel codice che hai scritto, stai passando un singolo carattere (vett2[10]) alla funzione invece di passare l'intero vettore (vett2).

    Inoltre, sembra che ci sia un errore di battitura nella dichiarazione della funzione contvoc: al posto di Int dovrebbe esserci int. Ecco una possibile versione corretta del codice:

    #include <iostream>
    
    using namespace std;
    
    // Dichiarazione della funzione contvoc
    int contvoc(char vett[10]) {
    
          // Variabile voc che conterrà il numero di vocali
          int voc;
    
          // Ciclo for che scorre l'intero vettore
          for(int i=0; i<10; i++){
    
              // Controlla se il carattere corrente è una vocale
              if(vett[i]=='a' || vett[i]=='e' || vett[i]=='i' || vett[i]=='o' || vett[i]=='u'
    
               || vett[i]=='A' || vett[i]=='E' || vett[i]=='I' || vett[i]=='O' || vett[i]=='U')
    
               {
                   // Se lo è, aumenta il contatore di vocali
                   voc++;
               }
          }
    
          // Restituisce il numero di vocali
          return voc;
    }
    
    int main(){
    
        // Dichiarazione del vettore di caratteri vett2
        char vett2[10];
    
        // Dichiarazione della variabile che conterrà il numero di vocali
        int numvocali;
    
        // Ciclo for che legge i caratteri uno per uno
        for(int i=0; i<10; i++){
    
            cout<<"inserire il carattere numero: "<<i+1<<"\n";
    
            cin>>vett2[i];
        }
    
        // Chiamata della funzione contvoc passando l'intero vettore come argomento
        numvocali = contvoc(vett2);
    
        // Stampa il numero di vocali presenti nel vettore
        cout<<"\n";
        cout<<"\n";
        cout<<"il numero di vocali presenti nel vettore e': "<<numvocali;
    
        return 0;
    }
    
Devi accedere o registrarti per scrivere nel forum
4 risposte