Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: darking664 en 16 Septiembre 2013, 23:19 PM

Título: [SOLUCIONADO]Recursividad: Simulacion de ciclos (Imprimir una cadena alreves)
Publicado por: darking664 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 (cpp) [Seleccionar]

#include <cstdlib>
#include <iostream>
#include <cstring>

void cadena(char cad[],int i);

using namespace std;

int main()
{
char cad[]="hola a todos";

cadena(cad,strlen(cad)-1);


system("PAUSE");
return EXIT_SUCCESS;
}

//Imprimir una cadena alreves
void cadena(char cad[],int i)
{
if(i<=0)
{
cout<<cad[i]<<" ";
cadena(cad,i-1);
}
}
Título: Re: Recursividad: Simulacion de ciclos (Imprimir una cadena alreves)
Publicado por: hyperiod 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
Título: Re: Recursividad: Simulacion de ciclos (Imprimir una cadena alreves)
Publicado por: darking664 en 16 Septiembre 2013, 23:33 PM
Cita de: hyperiod 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


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

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

Título: Re: Recursividad: Simulacion de ciclos (Imprimir una cadena alreves)
Publicado por: 3mp3z@ndo 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
Título: Re: Recursividad: Simulacion de ciclos (Imprimir una cadena alreves)
Publicado por: darking664 en 16 Septiembre 2013, 23:46 PM
Cita de: 3mp3z@ndo 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



jejejeje....   ::)

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

de veras gracias  :rolleyes:  

:xD
Título: Re: [SOLUCIONADO]Recursividad: Simulacion de ciclos (Imprimir una cadena alreves)
Publicado por: rir3760 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 (cpp) [Seleccionar]
#include <iostream>
using namespace std;

void imprimir(char *p);

int main()
{
   char cad[] = "anitalavalatina";
   
   cout << cad << endl;
   imprimir(cad);
   cout << endl;
   
   return 0;
}

void imprimir(char *p)
{
   if (*p != '\0'){
      imprimir(p + 1);
      cout << *p;
   }
}


Un saludo