c语言:利用泰勒级数e=1+1/1!+1/2!+…1/n!
1个回答
展开全部
1、输入问题scanf
2、函数abs()的使用错误
int
abs(int);这是原型,所以abs(0.5)的值是0,while循环不执行。改成fabs()即可
3、while循环里,k的值
#include
#include
void main()
{
double y=0,x;
int n=1,k,p = 1;
scanf("%lf",&x);
while(fabs(x)>=pow(10,-6))
{
y=y+x;
k=2*n-1;
p=1;
while(k>0)
{
p=k*p;
k--;
}
x=(pow(x,2*n-1))*(pow(-1,n+1))/p;
n++;
}
printf("y=%3f,n=%d\n",y,n);
}
2、函数abs()的使用错误
int
abs(int);这是原型,所以abs(0.5)的值是0,while循环不执行。改成fabs()即可
3、while循环里,k的值
#include
#include
void main()
{
double y=0,x;
int n=1,k,p = 1;
scanf("%lf",&x);
while(fabs(x)>=pow(10,-6))
{
y=y+x;
k=2*n-1;
p=1;
while(k>0)
{
p=k*p;
k--;
}
x=(pow(x,2*n-1))*(pow(-1,n+1))/p;
n++;
}
printf("y=%3f,n=%d\n",y,n);
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询