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...