题解:结束条件已经清晰的知道,用do-while比for循环好。
#include <stdio.h>
#include <math.h>
double fact(int x)
{ //注意这个阶乘函数的返回值是double型。
if (x == 0 || x == 1)
return 1;
else
return x * fact(x - 1);
}
int main(void)
{
int i;
double x, sum, item;
sum = 1, i = 1;
scanf("%lf", &x);
do
{
item = pow(x, i) / fact(i);
sum += item;
i++;
} while (item >= 0.00001);
printf("%.4lf\n", sum);
return 0;
}