Hola a todos!, estoy haciendo un ejercicio en C que trata de, introducir una cadena de caracteres cualquiera por teclado, y que el programa devuelva cuantas palabras mayores de 4 letras hay. El código que tengo es el siguiente:
#include <stdio.h>
#include <string.h>
int main()
{
int tamanno, i,j,palabras=0,contador=0;
char cadena[80];
printf("Introduzca cadena: ");
gets(cadena);
tamanno=strlen(cadena);
for(j=0;j<tamanno;j++)
{
if(cadena[i]!=' ' || cadena[i]!='\0')
contador++;
else
if(contador>4)
palabras++;
}
printf("Hay %d palabras con mas de 4 letras\n",palabras);
return 0;
}
He revisado todo varias veces y no encuentro el error, al ejecutarlo, introduzca lo que introduzca, me pone que hay 0 palabras mayores de 4 letras, me podría decir alguien donde está el error?
Gracias de antemano!
No veo que en ningún momento inicialices la variable "i", de manera que siempre estás leyendo el mismo "i" de la cadena.
Y dado que no lo inicializas, lo raro es que no contenga un valor aleatorio y el programa explote :o
Una vez cambiado lo de 'j' por la 'i', te falta volverle a asignar el valor 0 a 'contador' al encontrar un espacio.