Muchas gracias darix por tu respuesta:
A ver:
1 - Lo de la i es fallo mio, queria hacer un desde i=1 hasta n hacer tal pero he visto que así seria más facil, almenos a primera vista. Después no me he acordado de definirla.
2 - Esto es porque no sabia como funcionaba... Ahora veo que primero declaras el prototipo (lo más basico), después haces el algoritmo principal y luego ya escribes la funcion. No es que no lo hayas visto nunca
![fumando [fumando]](/images/smilies/nuevos/fumando.gif)
, es que no tengo ni idea.
3- La n al principio queria que se la pidiera y luego la utilizara, pero mejor la dejo como constante y así no hay problema.
4 - Lo de el valor de retorno tienes razon. Que diferencia hay entre float o double? float debe ser un numero real, pero double? También? Hice un pequeño programa con float y después me decia que se perdian datos, que mejor usara dobule.
5- Ahora el VS me dice que hay un problema con pow, más de una instancia de funcion sobrecargada coincide con la lista de argumentos. Que es eso? Avia usado pow antes y no me decia nada....
Aquí está el código:
#include "stdafx.h"
#include "iostream"
using namespace std;
#define n 170
float exponencial (int x);
int _tmain(int argc, _TCHAR* argv[])
{
float resultat;
int x;
cout <<"Et trobare e^X. Diga'm la x: ";
cin >> x;
resultat= exponencial(x);
cout <<"El resultat es: " <<resultat;
system("PAUSE > nul");
return 0;
}
float exponencial (int x)
{
float potencia,factorial,resultat,suma;
int i;
factorial=1;
suma=1;
i=1;
while (i<=n) {
potencia= pow(x,i) ;
factorial= factorial*i ;
resultat=potencia/factorial;
suma=suma+resultat;
i=i+1;
}
return suma;
}