Ver Mensaje Individual
  #1 (permalink)  
Antiguo 17/07/2015, 15:51
braedu555
 
Fecha de Ingreso: febrero-2015
Mensajes: 20
Antigüedad: 9 años, 2 meses
Puntos: 0
Duda con recursividad

Ayer estaba haciendo un problema para sacar un numero x elevado a la y mediante recursividad, y por accidente se me olvido poner una instrucción return y aun asi corrio bien el programa y no entiendo porque, es decir yo creo que la forma correcta de hacerlo seria algo asi:

Código:
#include <stdio.h>

int potencia(int base, int exponente);

int main()
{
	int x, y;
	
	printf("Especifique base y exponente: ");
	scanf("%d%d", &x, &y);
	
	printf("%d elevado a %d es: %d\n", x, y, potencia(x,y));
	
	return 0;
}

int potencia(int base, int exponente)  //recursividad
{
	if (exponente == 1)
	  return base;
	else
	  return  base * potencia(base,exponente-1);
	  
}
Pero yo en vez de poner return base * potencia(base, exponente-1);
puse base = base * potencia(base,exponente-1);, y aun así me corrió el programa bien...
Lo que no entiendo es que luego de que se llegue a un caso base y se regrese un valor, como se regresaran los demás valores a las funciones anteriores, si no hay una instrucción return...