C语言编程 用泰勒展开式计算e^x的值

作者&投稿:徭矩 (若有异议请与网页底部的电邮联系)
怎样用c语言编写计算e^x的麦克劳林公式?~

#include
#include
#include
#include
using namespace std;
double taile(double x);
int main()
{
int n,i;
double y;
cin>>n;
for(i=0; i<n; i++)
{
int x;
cin>>x;
y=taile(x);
cout<<setiosflags(ios::fixed)<<setprecision(7)<<y<<endl;
}
return 0;
}
double taile(double x)
{
if(x==0)
return 1;
int i=0,t;
//y需赋初值,只需y>1e-7
double sum,y=1,f=0;
while(y>1e-7)
{
sum=1;
i++;
for(t=0; t<i; )
t++,sum*=t;
y=pow(x,i)/sum,f+=y;
}
return f+1;
}
望采纳,谢谢

函数f3有问题,计算x的n次方的表达式你都写错了
由泰勒公式得e^x=1+x+x^2//2+……+x^n/n!…… 然后你重新写那个函数
float f(float a,float b)
{
float f=1.0;
int i=1;
while(pow(a,i)/fac(i)>b)
{
f=f+pow(a,i)/fac(i);
i++;
}
return(f);
}
我重新写了一下 通过调试了 这是那个函数其中a表示e^a b表示精度

#include<stdio.h>

#include<math.h>

int main()

{

double add(double x, double n);

double x, n,sum;

scanf("%lf %lf", &x, &n);

if(n<0||x<0)

{

printf("error");

return 0;

}

else 

sum = add(x, n);

printf("%.6lf", sum); 

}

return 0;

}

double add(double x,double n)

{

double b = 1, c = 1;

double sum = 1;

for (b = 1; b <=n; b++)

{

sum = sum +( pow(x, b))/c;

b = b + 1;

c = c*b;

}


return sum;

}

你这样做,那个输出错误的结果判断要在计算之前,并且出错后要退出,而且你的异常条件要写成:if(n<0||x<0),因为0是允许的。然后计算和的函数我减去了一个变量,有循环变量就可以替代n了

我的运行结果,但我不知道运算的对不对,程序反正没有错误了,也可以运行的



When test group(3) step(1),the input is (10.45 20 ),the real output is not right.请问下这个怎么解决的呀,我也碰到啦

这个程序跑起来是报故还是结果不对?