Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Salve ragazzi, tra non molto dovrò affrontare un' esame sulla programmazione in C.
Il testo chiede di inserire delle sequenze di caratteri e quindi di trovare la parola più lunga tra quelle inserite.
Non bisogna usare array o funzioni stringa.
Di seguito il codice scritto da me:
Codice sorgente - presumibilmente C++
#include <stdio.h>
/*testo di esame del 16/01/2014*/
int main(){
printf("Benvenuto nel programma\n");
printf("Inserisci una sequenza di caratteri\n");
int numerospazi,parola1,parola2,parolapiulunga;//contatori
//inizializzo i contatori
parolapiulunga=0;
numerospazi =0;
parola1=0;
parola2=0;
// dichiaro la variabile che conterrà il carattere letto dalla getchar()
char c ;
do{
//leggo il carattere
c=getchar();
//incremento il contatore di parola1
parola1++;
// se viene premuta la barra spaziatrice
if(c==32&& c!=10){// c!=10 serve per evitare l'echo generato dalla getchar()
//incremento il contatore degli spazi
numerospazi++;
//routine per la seconda parola
do{
//leggo il carattere
c=getchar();
//incremento il contatore di parola2
parola2++;}
// fin quando non viene premuta nuovamente la barra spaziatrice
while(c!=32 );
//incremento il contatore degli spazi
numerospazi++;
// confronto le parole inserite per determinare la più lunga
if(parola2 > parola1 ){
if(parola2>parolapiulunga)
parolapiulunga=parola2;
}else
if(parola1 > parola2 ){
if(parola1>parolapiulunga)
parolapiulunga=parola1;
}
parola1=0;
parola2=0;
}
}
// L' input termina quando viene generato il segnale EOF ctrl+z
while(c!=EOF);
// stampo a video i risultati
printf("Hai inserito %d numero di spazi\n",numerospazi);
printf("La parola piu' lunga contiene %d caratteri\n",parolapiulunga);
//programma terminato correttamente
return0;
}
Non riesco ad ottenere il numero di caratteri che contengono la parola più lunga, infatti , al termine dell' esecuzione :
Codice sorgente - presumibilmente Plain Text
parolapiulunga=numeri apparentemente casuali.
invece che mostrare la parola più lunga inserita
Sicuramente è un errore stupido ma non ne esco!