Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/04/2011, 21:33
pablitoisback
 
Fecha de Ingreso: abril-2011
Ubicación: Cordoba
Mensajes: 3
Antigüedad: 13 años
Puntos: 0
Exclamación Recursividad contar palabra mas larga y hubicacion de la misma

Hola gente, resulta que tengo un problema grande, tengo que hacer lo siguiente:
Dada una oración, indicar la posicion (desplazamiento desde el comienzo) donde esta la palabra mas larga. Si hay 2 o mas, debera indicar la primera ocurrencia. Las palabras están separadas por blancos.
Deberá definir una función recursiva a la cola que resuelva el problema en una unica pasada por los datos.

Lo que llevo hasta ahora es lo que se me ocurrio, pero la verdad que no me funciona, y ya no se que hacer. Espero que sepan como ayudarme.

en este intento del programa, intento hacer de que mientras sea distinto de blanco, me cuente las palabras. Necesito comparalas, pero no tengo muy claro como.

Sin mas, un saludo, atte.
Pablo Morales!

Código c++:
Ver original
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int largo ( char* cadena,int i,int pos,int conPal)
  5.     {     int largoPal;
  6.           if (cadena[i]=='\0')
  7.              {
  8.                               return i;
  9.              }          
  10.           else
  11.                
  12.                {
  13.                          if (cadena[i] != ' ')
  14.                
  15.                             {
  16.                              return largo ( cadena,i+1,pos+1,conPal+1);
  17.                              }      
  18.                             else
  19.                              {   if (conPal>largoPal)
  20.                                       {
  21.                                         largoPal=conPal;
  22.                                       }                        
  23.                                   else {};
  24.                              }
  25.                }
  26. }                                  
  27.                                  
  28. int main()
  29.  
  30. {
  31.      char cadena[] = "belenzuela lalalalal";
  32.  
  33.      printf("%s\n", largo(cadena, 0,0,0));
  34.  
  35.      system("pause");
  36.      return 0;
  37. }