题目
我的代码
#include<stdio.h>
double f(int i)
{
int sum=1,n=1;
while(n<=i){
sum=sum*n;
n+=1;
}
return sum;
}
double s(double x,int i)
{
double sum;
if(i==0){
sum=1;
}
else{
sum=1;
while(i>=1){
sum=sum*x;
i-=1;
}
}
return sum;
}
double m(double x,int i)
{
double r;
r=s(x,i)/f(i);
return r;
}
int main()
{
double x,esp,sum,h;
int i=1;
scanf("%lf %lf",&x,&esp);
sum=1;
while(1){
if(i%2==1){
sum=sum-m(x,i);
}
else{
sum=sum+m(x,i);
}
h=m(x,i);
if(h<esp){
break;
}
i+=1;
}
printf("%.3lf",sum);
return 0;
}
输入2 0.0001正确,但输入5 0.001错误
请问一下问题是在哪