PROGRAMMA FUNZIONANTE
codice:
#include <iostream>
#include <stdio.h>
using namespace std;
int NumeroLettere(int Max, int Conto);
int main(){
bool Controllo=false;//Variabile di controllo (per evitare spazi doppi)
int NumeroSpazi, Conto, Max, Indice;
char Ch;
char Frase[1024];
Max = NumeroSpazi = Conto = Indice = 0;
cout<<"Scrivi una frase e premi invio: ";
while((Ch = getchar()) != '\n' && Indice<1024){
Frase[Indice++] = Ch;
if(Ch == ' ') {
if(!Controllo)
NumeroSpazi++;
Controllo=true;
NumeroLettere(Max,Conto);
Conto = -1;
if (Max < Conto) Max = Conto;
}
else Controllo=false;
Conto++;
cout<<"La frase che hai inserito e':"<<Frase<<endl;
cout<<"In questa frase ci sono " <<NumeroSpazi+1<<" parole"<<endl;
cout<<"La parola piu' lunga che hai immesso e' di lunghezza pari a: "<<Max<<endl;
system ("PAUSE");
return 0;
}
int NumeroLettere(int Max, int Conto){
if(Max < Conto) Max = Conto;}
PROGRAMMA NON FUNZIONANTE
codice:
using namespace std;
int NumeroLettere(int Max, int Conto);
int main(){
bool Controllo=false;//Variabile di controllo (per evitare spazi doppi)
int NumeroSpazi, Conto, Max, Indice;
char Ch;
char Frase[1024];
Max = NumeroSpazi = Conto = Indice = 0;
cout<<"Scrivi una frase e premi invio: ";
while((Ch = getchar()) != '\n' && Indice<1024){
Frase[Indice++] = Ch;
if(Ch == ' ') {
if(!Controllo)
NumeroSpazi++;
Controllo=true;
NumeroLettere(Max,Conto);
Conto = -1;
}
else Controllo=false;
Conto++;
NumeroLettere(Max,Conto) }
cout<<"La frase che hai inserito e':"<<Frase<<endl;
cout<<"In questa frase ci sono " <<NumeroSpazi+1<<" parole"<<endl;
cout<<"La parola piu' lunga che hai immesso e' di lunghezza pari a: "<<Max<<endl;
system ("PAUSE");
return 0;
}
int NumeroLettere(int Max, int Conto){
if(Max < Conto) Max = Conto;}
E' meglio così? 
Ps.Come posso cambiare il valore nel main?