C语言 f(x)=1+x+x^2/2!+x^3/3!+...+x^n/n!直到|x^n/n|
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/05 20:50:32
![C语言 f(x)=1+x+x^2/2!+x^3/3!+...+x^n/n!直到|x^n/n|](/uploads/image/z/3763509-69-9.jpg?t=C%E8%AF%AD%E8%A8%80+f%28x%29%3D1%2Bx%2Bx%5E2%2F2%21%2Bx%5E3%2F3%21%2B...%2Bx%5En%2Fn%21%E7%9B%B4%E5%88%B0%7Cx%5En%2Fn%7C)
C语言 f(x)=1+x+x^2/2!+x^3/3!+...+x^n/n!直到|x^n/n|
C语言 f(x)=1+x+x^2/2!+x^3/3!+...+x^n/n!直到|x^n/n|
C语言 f(x)=1+x+x^2/2!+x^3/3!+...+x^n/n!直到|x^n/n|
#include<stdio.h>
#include<math.h>
//f(x)=1+x+x^2/2!+x^3/3!+...+x^n/n!直到|x^n/n|<10^-6
double fun()
{
double s,xn,x0;
int y,i;
printf("请输入x=\t");
scanf("%lf",&x0);
s=1+x0; //前面两项的和
y=1;
xn=x0;
//变量说明,s(前n项和),y(表示n!),xn(表示x^n)
printf("第%d次求和结果:y=%d xn=%f s=%f\n",1,y,xn,s);
i=2;
while(1) //n的初始值1,i=1,则该循环只能执行一次就结束了
{
y=y*(y+1);
xn=xn*x0;
s=s+xn/y;
printf("第%d次求和结果:y=%d xn=%.8f s=%f\n",i,y,xn,s);
if(fabs(xn/y)<(1e-6))
break;
i++;
}
return s;
}
main()
{
double s;
s=fun();
printf("最后答案:f(x)=%lf\n",s);
}
程序我是在你的程序基础上改的,已经运行调试过了,你的程序中有一些错误,如果需要点评你源程序的话可以继续追问哦,