Bugiardo96
12-06-2017, 19:27
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!!!
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!!!