Un'idea di codice:
codice:
char ch;
int numberOfSpace = 0;
int max, count;

max = 0;
count = 0;

/*Prende un carattere dallo stdin fino a quando non incontra '\n'*/
while((ch = getchar()) != '\n'){
   
   /*Se incontra uno spazio significa, che ha "letto" una parola*/
   if(ch == ' '){
      
      /*Contare il numero di spazi equivale a contare il numero delle parole*/
      numberOfSpace++;
      /*Se il numero di caratteri letti fino allo spazio è maggiore di max, allora il massimo di caratteri diventa count*/
      if(max < count) max = count;
      /*Azzera count per contare i caratteri della successiva parola*/
      count = 0;
      
   }
   
   /*Incrementa count*/
   count++;
   
}