咱先写出来一版,有问题再帮你看,如何
#include <stdio.h>
#include <math.h>
double fact(int n) {
int i;
double d;
d=1.0;
for (i=1;i<=n;i++) d*=i;
return d;
}
int main() {
double x,s,e;
int n;
scanf("%lf",&x);
s=1.0;
n=1;
while (1) {
e=pow(x,(double)n)/fact(n);
s+=e;
if (e<0.00001) break;
n++;
}
printf("%.2lf",s);
return 0;
}
供参考:
#include <stdio.h>
#include <math.h>
long long int fact(int n)
{
long long int s = 1;
int i;
for (i = 1; i <= n; i++)
s *= i;
return s;
}
int main()
{
double x, t = 1, s = 1;
int i = 1;
scanf("%lf", &x);
while (fabs(t) > 1e-5)
{
t = pow(x, i) / fact(i);
s += t;
i++;
}
printf("s=%.2f",s);
return 0;
}