/*用double的情况,若全部double改成float则结果变为0.00,why??*/
#include<stdio.h>
#include<math.h>
void main()
{
int i;
double fact(int i);
double s,term,x;
i=1;
s=0;
scanf("%lf",&x);
do
{
term=pow(x,i)/fact(i);
s=s+term;
i++;
}while(term>=pow(10,-5));
printf("%.2f",s);
}
double fact(int j)
{
int ri,f;
f=1;
for(ri=1;ri<=j;ri++){
f=f*ri;
}
return(f);
}
这里7位就够了呀。。。
追答float 类型,因为在内存里保存的格式问题,数值会发生变化,所以还是采用 double 吧