Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: DanielPy en 28 Octubre 2015, 18:48 pm



Título: Return en recursividad(Lenguaje C)
Publicado por: DanielPy en 28 Octubre 2015, 18:48 pm
Hola, gente.
Como el enunciado lo dice tengo algunas dudas sobre el tema recursividad.-
Cuando pongo esta línea de código return num[e]; quisiera saber que mensaje le está enviando el programa a la pila o porque debo suponer que con esto la función deja de auto llamarse.- 
Por último ¿me podrían dar alguna sugerencia para mejorarlo?

Código
  1. #include <stdio.h>
  2.  
  3. int rec( int[], int );
  4.  
  5. int main(void){
  6. int numeros[] = {1,2,3,4,5,6}, e = sizeof numeros / sizeof *numeros, i;
  7.  
  8. for( i = 0; i < e; i++ ){
  9. printf( "%d ", numeros[i] );
  10. }
  11. printf( "\n" );
  12.  
  13. rec( numeros, e );
  14.  
  15. return 0;
  16. }
  17.  
  18. int rec( int num[], int e){
  19. if( e == 0){
  20. return num[e];
  21. }
  22. else{
  23. printf( "%d ", num[e-1] );
  24. rec( num, e-1 );
  25. }
  26. return 0;
  27. }
  28.  
Saludos y muchas gracias.-
Daniel 


Título: Re: Return en recursividad(Lenguaje C)
Publicado por: ivancea96 en 28 Octubre 2015, 22:28 pm
Con el return, sales de la función, sin volver a llamarla recursivamente.


Título: Re: Return en recursividad(Lenguaje C)
Publicado por: DanielPy en 29 Octubre 2015, 13:48 pm
Hola ivancea96.
Mil disculpas por preguntar algo que era tan obvio.-

Saludos y gracias por responder.
Daniel