Ciao
ho riscritto ancora un altra volta il programma ma non funziona ancora pienamente.
codice:
//Problema sulla sequenza di lettere uguali
#include <stdio.h>
#include <string.h>
int main()
{
char frase[255];
int contParole = 0;
int lunParole[255];
int k,i;
int max=0;
char maxLet;
int contaLettere=1;
char let;
printf("Inserite la parola o la frase (premere invio per terminare):\n");
gets(frase);
i = 0;
do
{
if ((i>0) && ((frase[i] ==' ') || (frase[i] == '\0')))
{
contParole++;
if(contParole == 1)
lunParole[contParole-1] = i;
else
{
lunParole[contParole-1]=i-(contParole-1);
for (k = 0; k<contParole-1; k++)
lunParole[contParole-1] = lunParole[contParole-1]-lunParole[k];
}
}
i++;
}
while (frase[i-1]!='\0');
printf("\n");
printf("Lunghezza frase: %d\n",i);
for (k=0; k<contParole; k++)
printf("\n");
printf ("La parola %d e\' lunga %d caratteri\n",k+1, lunParole[k]);
//Ho contato le parole. Ora vado a vedere il maggior numero di lettere vicine.
//Scorro tutta la frase
for (k=0; k<i-1; k++)
{
if (frase[k]==frase[k+1] && frase[k] != ' ' && frase[k] != '\0')
{
contaLettere++;
let = frase[k];
}
else
{
if (contaLettere>max)
{
max = contaLettere;
maxLet = let;
}
let = ' ';
contaLettere = 1;
}
}
if(max>1)
{
printf("\n");
printf("'%c' e\' la lettera che comapre piu\' volte di seguito (%d volte)\n",maxLet, max);
}
else
{
printf("\n");
printf("Non c'e\' una lettera che si ripete piu\' volte rispetto alle altre");
}
printf("\n\n");
system("pause");
return 0;
}
Il problema è che mi da un numero di caratteri errato, ossia se per esempio l'utente mette come input qwer il programma dice che è formato da 2147348480 caratteri.
Come potrei risolvere questo problema??
Ciao e grazie anticipatamente