El programa funcionara correctamente siempre y cuando ninguna palabra tenga una longitud mayor a 19 caracteres pero, si existe una, el programa puede terminar reventando.
Para evitarlo dentro del bucle debes verificar el valor del contador "n_char", si este tiene un valor mayor al permitido le asignas el máximo, de esta forma:
Un saludo
Para evitarlo dentro del bucle debes verificar el valor del contador "n_char", si este tiene un valor mayor al permitido le asignas el máximo, de esta forma:
Código (c) [Seleccionar]
while ((c = getchar()) != EOF)
if (c != ' ' && c != '\n' && c != '\t')
++n_char;
else if (n_char > 0){
if (n_char > 19)
n_char = 19;
index[n_char]++;
n_char = 0;
}
Un saludo