Yo tengo una duda con un ejercicio que tengo que hacer...
Es de forma recursiva y tengo que tratar de hacer una función que reciba dos argumentos, uno real y otro entero, el real será la base de la potencia y el entero será el exponente.
En la función lo que tengo que hacer es elevarlo y devolver el resultado. Pues tengo este código:
#include
#include
double elevar (double a, int b);
int main (void)
{
double a;
int b;
double r;
printf("escriba el numero base:");
scanf ("%d", &a);
fflush(stdin);
printf("escriba el numero exponente:");
scanf ("%i", &b);
fflush(stdin);
r = elevar (a, b);
printf("el resultado es: %lf\n", r);
system ("pause");
}
double elevar (double a, int b)
{
double resul;
if (b == 0)
{
return resul;
}
else {
resul = 1;
resul = resul * a;
b = b - 1;
return elevar (a, b);
}
}
El resultado final me da 0.0000000 si pongo 2 elevado a 3, y si pruebo con números más altos, me sale un número bastante largo de cifras que no tienen nada que ver.
Creo que hay vaarios problemas por el algoritmo, pero no caigo en cómo solucionarlos.
¡Ayuda!
EDITO: Y otra cosita, en mi compilador (DevC++) no hay ningun manual para mirar todas las librerias, todos los comandos, su forma de uso y demas???
Gracias.