Hola a todos!
soy estudiante de ingeniería y estoy tratando de resolver un ejercicio. Un programa que muestre un histograma de las longitudes de las palabras de un texto
de entrada (usando la entrada estándar). Mi codigo es este:
#include <stdio.h>
#define IN 1
#define OUT 0
main()
{
int c,i;
int state;
int index[10];
int n_char = 0;
int n_words = 0;
state = OUT;
for( i = 0; i < 10; ++i)
{
index = 0;
}
while( c = getchar() != EOF )
{ if (state == IN)
{
n_char = n_char + 1;
printf("%d\n", n_char);
}
if( c = ' ' || c == '\n' || c == '\t' )
{
state = OUT;
index[n_char] = index[n_char] + 1;
}
else if ( state == OUT )
{
state = IN;
++n_words;
}
}
printf("%d\n", index[0]);
printf("%d\n", index[1]);
printf("%d\n", index[2]);
printf("%d\n", index[3]);
printf("%d\n", index[4]);
printf("%d\n", index[5]);
printf("%d\n", index[6]);
printf("%d\n", index[7]);
printf("%d\n", index[8]);
printf("%d\n", index[9]);
}
Al ejecutarlo, en lugar de guardar el número de palabras de X número de caracteres en cada posición del array, introduce el numero total de caracteres del texto siempre en la misma posicion del array. Que estoy haciendo mal?
Gracias de antemano!