Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: joseh94 en 12 Enero 2015, 18:22 pm



Título: Ayuda programa en C contar palabras
Publicado por: joseh94 en 12 Enero 2015, 18:22 pm
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:

Código:
#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!


Título: Re: Ayuda programa en C contar palabras
Publicado por: Orubatosu en 12 Enero 2015, 18:33 pm
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


Título: Re: Ayuda programa en C contar palabras
Publicado por: ivancea96 en 12 Enero 2015, 18:46 pm
Una vez cambiado lo de 'j' por la 'i', te falta volverle a asignar el valor 0 a 'contador' al encontrar un espacio.