作业帮 > 综合 > 作业

用C语言怎样编写“输入一个数X,计算并输出下式的值,直到最后一项的绝对值小于10的-5次方(保留两位小数

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/12 00:41:46
用C语言怎样编写“输入一个数X,计算并输出下式的值,直到最后一项的绝对值小于10的-5次方(保留两位小数
式子是S=X+X^2/2!+X^3/3!+X^4/4!.
C代码:
#include<stdio.h>
#include<math.h>//fabs()
int main()
{ double x,s,a;//为了提高精度,我把它们定义成双精度的.
int i;
scanf("%lf",&x);//注意x为弧度,输入的值过大没意义只要在-2*∏~2*∏即可.因为C语言的运算精确度有限.例如输入1.7,输出0.99166465
a=x;
s=a;
for(i=1;;i+=2)
{
a*=x*x*(-1)/((i+1)*(i+2));
if(fabs(a)<1e-7) break;
s+=a;
}
printf("%.8f\n",s);
return 0;
} //用泰勒展开式求sinx
C++代码:
#include<iostream>
#include<cmath>//fabs()
#include<iomanip>//setprecision()
using namespace std;
int main()
{ double x,s,a;//为了提高精度,我把它们定义成双精度的.
int i;
cin>>x;//注意x为弧度,输入的值过大没意义只要在-2*∏~2*∏即可.因为C语言的运算精确度有限.例如输入1.7,输出0.99166465
a=x;
s=a;
for(i=1;;i+=2)
{
a*=x*x*(-1)/((i+1)*(i+2));
if(fabs(a)<1e-7) break;
s+=a;
}
cout<<setprecision(8)<<s<<endl;
return 0;
} //用泰勒展开式求sinx
另外,团IDC网上有许多产品团购,便宜有口碑