Return en recursividad(Lenguaje C)

Iniciado por DanielPy, 28 Octubre 2015, 18:48 PM

0 Miembros y 1 Visitante están viendo este tema.

DanielPy

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 
abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor
y cuando lo abrazas dejan de causar dolor.-

ivancea96

Con el return, sales de la función, sin volver a llamarla recursivamente.

DanielPy

Hola ivancea96.
Mil disculpas por preguntar algo que era tan obvio.-

Saludos y gracias por responder.
Daniel
abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor
y cuando lo abrazas dejan de causar dolor.-