Ver Mensaje Individual
  #4 (permalink)  
Antiguo 15/03/2010, 16:52
Avatar de Godiecar
Godiecar
 
Fecha de Ingreso: febrero-2010
Mensajes: 22
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Contar número de palabras recursivamente [C]

djrony:

- Si, efectivamente, la función que publique no es recursiva, es iterativa, la publique así porque no se me ocurría hacerla recursiva.

- Si, era necesario que fuera recursiva.

- Desconocía la función strtok, llevo poco tiempo aprendiendo a programar y la función strchr fue lo único que encontré para poder hacer este código, aun así gracias por el dato.

CalgaryCorpus:

- En principio no me preocupaba el hecho de que contara los espacios en blanco como palabras, solo me centraba en la recursividad.



Alguien me ha ayudado con el código y parece que funciona.

Saludos.


Código C:
Ver original
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main()
  5. {
  6.  
  7. int cont;
  8.  
  9.   char cadena[80];
  10.  
  11.   printf("Escribir Oracion: ");
  12.   gets(cadena);
  13.  
  14.  
  15.   printf("\n\nHay %d Palabras \n\n", NumPalabras(cadena));
  16.  
  17.  
  18.   system("PAUSE"); 
  19.   return 0;
  20. }
  21.  
  22.  
  23.  
  24.  
  25. int NumPalabras(char* cadena)
  26. {
  27.        static int cont = 1;
  28.        if(*cadena == '\0') return 0;
  29.        if(*cadena == ' ') cont = 1;
  30.        if(*cadena != ' ' && cont == 1){
  31.            cont = 0;
  32.            return 1 + NumPalabras((++cadena));}
  33.        else  return 0 + NumPalabras((++cadena));  
  34. }