1.采用递推法计算sinx幂级数展开式的近似值,当通项绝对值小于10-8时停止累加。
【测试数据】
当输入x=3.1415926时输出0.0,,当输入x=1.5707963时输出1.0
代码如下,供参考
#include <stdio.h>
#include <math.h>
void main()
{
float x, s, a;
int i;
printf("请输入x\n");
scanf("%f", &x);
a = x;
s = 0;
for (i = 1; fabs(a) >= pow(10, -8); i++)
{
s = s + a;
a = -a * pow(x, 2) / (2 * i * (2 * i + 1));
}
printf("sinx = %.1f\n", s);
}
#include<stdio.h>
#include<math.h>
int main(void)
{
double x,a,s;
int n=1;
scanf("%lf",&x);
a=x;//a设置为每一项 初始值是第一项
s=a;//s表示展开式初始值是第一项
while(fabs(a)>=1e-8)
{
a=-a*x*x/(n+1)/(n+2);
s=s+a;
n+=2;
}
printf("%.1f",s);
return 0;
}
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!