|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Sep 2010
Messaggi: 63
|
C++ Conta parole (esame fatto e da correggere)
Ciao a tutti. Oggi ho fatto l'esame di informatica sul C++ e devo correggere il codice entro domani mattina.
E' molto semplice. Preso in input un testo da tastiera, deve contare le parole in base al numero di lettere. es. hai scritto 3 parole di 1 lettera. hai scritto 4 parole di 2 lettere. (ecc. fino a 14, in caso di parole con più di 14 lettere scrive hai scritto 3 parole con più di 14 lettere. Il problema è nel for della prima funzione. Non riesce ad uscire dal ciclo ed entrare nella seconda funzione. Un altro problema è che qualsiasi testo scrivo, mi dice che ho scritto una parola da più di 14 lettere. Questo è il programma: #include <iostream> #include <cstdlib> using namespace std; void caricavettore(char testo[100]){ cout<<"Scrivi un testo e premi invio."<<endl; for(int x=0;cin.get(testo[x]) && testo[x]!='\0' && x<100;x++); } void contestampa(char testo[100]){ int a=0,b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,l=0,m=0,n=0,o=0,p=0,q=0; int cont,j; for(int x=0;x<100 && testo[x]!='\0';x++){ if(testo[x]!=' ' && testo[x+1]!=' '){ cont++;} else if(testo[x]!=' ' && testo[x+1]==' '){ cont++; j=cont; cont=0; switch (j){ case 1: a++; case 2: b++; case 3: c++; case 4: d++; case 5: e++; case 6: f++; case 7: g++; case 8: h++; case 9: i++; case 10: l++; case 11: m++; case 12: n++; case 13: o++; case 14: p++; default: q++; } } j=0; } cout<<"Hai scritto "<<q<<" parole con più di 14 lettere."<<endl; cout<<"Hai scritto "<<a<<" parole con 1 lettera."<<endl; cout<<"Hai scritto "<<b<<" parole con 2 lettere."<<endl; cout<<"Hai scritto "<<c<<" parole con 3 lettere."<<endl; cout<<"Hai scritto "<<d<<" parole con 4 lettere."<<endl; cout<<"Hai scritto "<<e<<" parole con 5 lettere."<<endl; cout<<"Hai scritto "<<f<<" parole con 6 lettere."<<endl; cout<<"Hai scritto "<<g<<" parole con 7 lettere."<<endl; cout<<"Hai scritto "<<h<<" parole con 8 lettere."<<endl; cout<<"Hai scritto "<<i<<" parole con 9 lettere."<<endl; cout<<"Hai scritto "<<l<<" parole con 10 lettere."<<endl; cout<<"Hai scritto "<<m<<" parole con 11 lettere."<<endl; cout<<"Hai scritto "<<n<<" parole con 12 lettere."<<endl; cout<<"Hai scritto "<<o<<" parole con 13 lettere."<<endl; cout<<"Hai scritto "<<p<<" parole con 14 lettere."<<endl; } int main(){ char vettore[100]; caricavettore(vettore); contestampa(vettore); return 0; } Per favore! Qualcuno mi aiuti!!! |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Primo indenta il codice con gli appositi tag perchè non ci si capisce niente.
Secondo stai mischiando C e C++. Praticamente hai scritto codice C con iostream del C++. Usare array per le stringhe è molto da C. Terzo hai provato in debug passo passo a vedere cosa fa il tuo codice? E' molto istruttivo per imparare. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 11:29.



















