Test Foro de elhacker.net SMF 2.1

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?

#include <stdio.h>

int rec( int[], int );

int main(void){
int numeros[] = {1,2,3,4,5,6}, e = sizeof numeros / sizeof *numeros, i;

for( i = 0; i < e; i++ ){
printf( "%d ", numeros[i] );
}
printf( "\n" );

rec( numeros, e );

return 0;
}

int rec( int num[], int e){
if( e == 0){
return num[e];
}
else{
printf( "%d ", num[e-1] );
rec( num, e-1 );
}
return 0;
}

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