Ciao,
ho messo il do-while come controllo dell'input (però risulta sbagliato) e in più ho tolto le parentesi graffe non cesessarie (in modo tale da essere più facile da leggere):
codice:
#include <stdio.h>
int main()
{
     char l=0, let=0;
     int num=0, con=0, max=0, maxLet, i=0;
     while(l!='\n')
     {
        do
         {
          printf("Inserite la parola o la frase (premere invio per terminare):");
          scanf("%c",&l);
          i++;
         }        
        while((l>='A' && l<='Z') || (l>='a' && l<='z') && (l!=' ')); //char literal, il ' ' è l'invio
        num++;
        if(l==' ' || l==10) //il 10 è lo spazio
        {
           if(num)
                 printf("\nIl numero di lettere e\': %d",num);      
           else
               num=0;
        }
        else
        {
            if(con>=max)
            {
                 max=con;
                 maxLet=let;
            }
            else
            {
                let==l; //La lettera di paragone diventa la nuova lettera
                con=0;
            }
        }               
     }
    printf("\n\n");
    printf("La lettera che si ripete piu\' volte e\' la %c e si ripete %d volte", maxLet,max);
    printf("\n\n");
    system("pause");                   
    return 0; 
}
Come posso fare per cercare di risolvere almeno uno di questi problemi.
Ciao e grazie