
/* 
 * arquivo: exp2.c
 * ----------------------
 * Dado x (real), e n (inteiro), este programa calcula exp(x)
 * atraves da soma dos n primeiros termos da serie
 *
 * 1 + x + x^2/2! + x^3/3! + ...
 * 
 * Para comparar, e' impresso o valor de exp(x) usando
 * a biblioteca math 
 *
 */

#include <stdio.h>
#include <math.h> /* <------- Veja !!! Para chamar a funcao exp(x) */

int main()
{
    int i, n;
    double x, soma = 1.0, termo = 1.0;

    printf("Digite o valor de x: ");
    scanf("%lf", &x);
    printf("Digite o valor de n: ");
    scanf("%d", &n);
  
    for (i = 1; i < n; i++) {
	termo *= x / i;
	soma += termo;
    }

    printf("exp(%g) = %.20g [usando a serie]\n", x, soma);
    printf("exp(%g) = %.20g [biblioteca math]\n", x, exp(x));
    printf("diferenca = %.20g \n", soma - exp(x));

    return 0;
}
