>>74 >>96 で?>>100は何の修正?コメントがないよ。
#include <stdio.h>
int word_len(char *s) {
  int i;

  for (i=0; s[i] != '\0' && s[i] != '\n'; i++) {
    if (i != 0 && s[i] == ' ') break; // 単語の前の空白は1個のみ可。それ以上は1単語。
  }
  return i;
}
int word_cnt(char *s) {
  char *temp = s;
  int cnt, len;

  for (cnt = 0; len = word_len(temp); cnt++) {
    temp += len;
  }
  return cnt;
}
int main() {
  char s[256+2] = "Hello World word3 word4 word5";

  fgets(s, 256+2, stdin); // 256+'\n'+'\0'
  printf("word cnt: %d\n", word_cnt(s));
}