#include <math.h>
int main(void)
{
double f = 1
double x, k, x2, power = 1
int i = 2
scanf("%lf", &x)
power += x
k = x
do {
x2 = power
f *= i++
x *= k
power += x / f
} while(fabs(power-x2) >1e-8)
printf("%f", power)
}
/////////////////////////
你那个代码,1、pow函数可以不用自己写,你写的精度也不够;2、保存阶乘最好用double,不然要溢出。
修正了以上2点就没问题了,代码如下:
#include <stdio.h>
#include <math.h>
double f1(int n)
{
double s = 1
int i
for ( i=1i<=ni++)
s *= i
return s
}
main()
{
int x,i, n
double ex = 1
scanf("%d%d",&x,&n)
for ( i=1i<=ni++)
ex += pow(x, i) / f1(i)
printf("%lf %lf\n",ex, exp(x))
}
#include<stdio.h>int main(){int i double x=0,t=1,y=1 scanf("%lf",&x) for(i=1t>=0.0001i++) {t*=x/i if(i%2)y+=t else y-=t } printf("%.4lf",y) return 0}