编写一个函数模块,用泰勒级数sin(x),计算sin(x)的值。要求最后一项的绝对值小于10的-5次方(最后一项要算在累加和中) 在main函数中调用这个函数并输出结果。(假设函数模块命名为double sinval(double x))核心代码:
item=x; //item 为泰勒级数公式中的当前项,初始设为第一项
while(fabs(item)>=1e-5) ,//如果当前项的绝对值大于10-5,则继续循环
{
sum=sum+item; //将当前项加入到总和里
n++; //项数+1
s=(2n+1)2n; //分母中比前项多出的两项的乘积
item=(-1)itemxx/s; //在前项的基础上计算当前项。即当前项=-前项xx/s }
供参考:
#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;
}