elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  [SOLUCIONADO]Recursividad: Simulacion de ciclos (Imprimir una cadena alreves)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [SOLUCIONADO]Recursividad: Simulacion de ciclos (Imprimir una cadena alreves)  (Leído 3,329 veces)
darking664

Desconectado Desconectado

Mensajes: 10



Ver Perfil
[SOLUCIONADO]Recursividad: Simulacion de ciclos (Imprimir una cadena alreves)
« en: 16 Septiembre 2013, 23:19 pm »

Esta ves quisiera saber si alguien ve mi error, al parecer la compilación sucede pero no muestra nada al ejecutarlo, si me pueden ayudar se los agradezco.


Código
  1. #include <cstdlib>
  2. #include <iostream>
  3. #include <cstring>
  4.  
  5. void cadena(char cad[],int i);
  6.  
  7. using namespace std;
  8.  
  9. int main()
  10. {
  11. char cad[]="hola a todos";
  12.  
  13. cadena(cad,strlen(cad)-1);
  14.  
  15.  
  16. system("PAUSE");
  17. return EXIT_SUCCESS;
  18. }
  19.  
  20. //Imprimir una cadena alreves
  21. void cadena(char cad[],int i)
  22. {
  23. if(i<=0)
  24. {
  25. cout<<cad[i]<<" ";
  26. cadena(cad,i-1);
  27. }
  28. }
  29.  


« Última modificación: 16 Septiembre 2013, 23:51 pm por zagato-krono » En línea

hyperiod

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: Recursividad: Simulacion de ciclos (Imprimir una cadena alreves)
« Respuesta #1 en: 16 Septiembre 2013, 23:22 pm »

Mejor manejalo con string y lee la cadena con getline(cin,variable) para que los espacios los cuentes y ya


En línea

darking664

Desconectado Desconectado

Mensajes: 10



Ver Perfil
Re: Recursividad: Simulacion de ciclos (Imprimir una cadena alreves)
« Respuesta #2 en: 16 Septiembre 2013, 23:33 pm »

Mejor manejalo con string y lee la cadena con getline(cin,variable) para que los espacios los cuentes y ya


Gracias por la sugerencia y la rápida respuesta :D

Aunque me gustaría saber donde esta mi error ... :(

En línea

3mp3z@ndo

Desconectado Desconectado

Mensajes: 51


Ver Perfil
Re: Recursividad: Simulacion de ciclos (Imprimir una cadena alreves)
« Respuesta #3 en: 16 Septiembre 2013, 23:41 pm »

El error lo tienes en el if, le estás diciendo que si la longitud de la cadena es MENOR que cero imprima, como es mayor, pues no imprime.

Un saludo
En línea

darking664

Desconectado Desconectado

Mensajes: 10



Ver Perfil
Re: Recursividad: Simulacion de ciclos (Imprimir una cadena alreves)
« Respuesta #4 en: 16 Septiembre 2013, 23:46 pm »

El error lo tienes en el if, le estás diciendo que si la longitud de la cadena es MENOR que cero imprima, como es mayor, pues no imprime.

Un saludo



jejejeje....   ::)

GRACIAS... no se como no lo pude ver....  :o
le hacia mas caso a los procesos   :-\

de veras gracias  :rolleyes:  

 :xD
En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: [SOLUCIONADO]Recursividad: Simulacion de ciclos (Imprimir una cadena alreves)
« Respuesta #5 en: 17 Septiembre 2013, 02:25 am »

No es necesario pasar la longitud de una cadena "a la C" ya que el carácter '\0' marca el final de esta y puede utilizarse como condición de salida en la función recursiva:
Código
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. void imprimir(char *p);
  5.  
  6. int main()
  7. {
  8.   char cad[] = "anitalavalatina";
  9.  
  10.   cout << cad << endl;
  11.   imprimir(cad);
  12.   cout << endl;
  13.  
  14.   return 0;
  15. }
  16.  
  17. void imprimir(char *p)
  18. {
  19.   if (*p != '\0'){
  20.      imprimir(p + 1);
  21.      cout << *p;
  22.   }
  23. }

Un saludo
En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines