Numarare vocale din mai multe cuvinte

char vocale[]="aeiouAEIOU";
    int nrVocale[i];
    for(int m=0;m<=i;m++)
        for(unsigned int l=0;l<strlen(cuvinte[m]);l++)
        for(unsigned int n=0;n<strlen(vocale);n++)
            if(cuvinte[m][l] == vocale[n])
                nrVocale[m]++;

Variabila char cuvinte memoreaza mai multe cuvinte(mai exact “i” cuvinte).
De ex: cuvinte[0]="acasa"
cuvinte[1]="lac"
cuvinte[0][0]=‘a’ (din cuvantul “acasa”)
Algoritmul ia fiecare cuvant(de la 0 la i),pentru fiecare cuvant ia toate caracterele(l) si compara fiecare caracter cu fiecare caracter din variabila vocale.
Variabila nrVocale este un tablou unidimensional care creste pentru fiecare vocale gasita in cuvantul cu index-ul m(cuvinte[m]);
Problema este ca atunci cand afisez tabloul/array-ul nrVocale pe unele pozitii apar numere gigantice generate de compilator(ex: -156334547)
Primul for este pentru cuvant,al doilea pentru caracterele din acel acel cuvant iar al treilea testeaza pentru fiecare litera din cuvant daca este vocala.

Se poate inchide topicul! Am folosit o functie pentru a calcula numarul de vocalesi s-a rezolvat!

1 Like

Asta e din cauza ca tu presupui ca array-ul nrVocale este initializat cu zero-uri. Nu, C++ nu initializeaza nimic, vezi aici despre ce e vorba.

Ca sa initializezi acel array procedezi asa:

int nrVocale[i];
memset(&nrVocale, 0, sizeof(nrVocale[i]));
2 Likes