Ayuda programa en C contar palabras

Iniciado por joseh94, 12 Enero 2015, 18:22 PM

0 Miembros y 1 Visitante están viendo este tema.

joseh94

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!

Orubatosu

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
"When People called me freak, i close my eyes and laughed, because they are blinded to happiness"
Hideto Matsumoto 1964-1998

ivancea96

Una vez cambiado lo de 'j' por la 'i', te falta volverle a asignar el valor 0 a 'contador' al encontrar un espacio.