ciao,mi chiamo francesca e ho appena inizaito un corso di programmazione.Ho da svolgere degli esercizi e non sono molto pratica.Il progarmma seguente dovrebbe contare la frequenza delle lettere delle parole che dai in input; la prima parte del codice l'ha già scritta il mio professore mentre io ho scritto solo
questo programma nei computer in facoltà funzionava senza problemi mentre sul mio (uso knoppix per la prima volta) dopo che do l'imput non da alcun risultato e non capisco il perchè dato che il compilatore è lo stesso dei computer in facoltà ovvero g++.codice:if (isalpha(ch)) {ch=ch-'a'; ++freq[ch];} }
grazie.codice:#include <iostream> #include <vector> #include <cctype> // Per le funzioni isalpha e tolower. using namespace std; // Programma che conta e stampa le frequenze delle lettere. int main() { vector<int> freq(26); // Caselle automaticamente azzerate. while (true) { char ch = cin.get(); // Legge un carattere dall'input e lo mette in ch if (!cin) { break; } // Uscire dal ciclo, se non ci sono piu` caratteri da leggere. ch = tolower(ch); // Converte maiuscole in minuscolo if (isalpha(ch)) {ch=ch-'a'; ++freq[ch];} } // Stampiamo le frequenze... cout << "Lettera Frequenza\n"; for (int i=0; i < 26; ++i) { cout << " " << char('a'+i) << " " << freq[i] << endl; } return 0; }

Rispondi quotando