如图编写一个函数模块,用泰勒级数sin(x),计算sin(x)的值。要求最后一项的绝对值小于10的-5次方(最后一项要算在累加和中〉
供参考:
#include <stdio.h>
#include <math.h>
double sinval(double x)
{
int n = 0;
double item = x, sum = 0, s;//item 为泰勒级数公式中的当前项,初始设为第一项
while(fabs(item) >= 1e-5) //如果当前项的绝对值大于10-5,则继续循环
{
sum = sum + item; //将当前项加入到总和里
n++; //项数+1
s = (2*n+1)*2*n; //分母中比前项多出的两项的乘积
item=(-1)*item*x*x/s; //在前项的基础上计算当前项。即当前项=-前项xx/s
}
return sum;
}
int main()
{
double x;
scanf("%lf", &x);
printf("%f",sinval(x));
return 0;
}