利用泰勒级数计算sinx
编写程序,利用级数和计算sin(x)=x/1-x^3/3!+x^5/5!-x^7/7!+x^9/9!+..........+(-1)^(n-1)*x^(2n-1)/(2n-1)!。
输入要计算的项数n和弧度x,输出sin(x)的值。
输入
有多组数据,每组包含一个整数项数n和一个实数x。
输出
sin(x)的值(保留3位小数)。
样例输入
10 1.57
10 0.5233
样例输出
1.000
0.500
上面那是题目要求
我自己按照https://bbs.bccn.net/thread-355256-1-1.html本论坛的帖子修改一下写了这个函数
#include<stdio.h>
#include<math.h>
double sin(double x,int n)
{
int i;
double c,y;
for(i=2.c=x;i<=n;i++)
{
y+=c;
c*=-x*x;
c/=2*i;
c/=2*i+1;
}
return y;
}
int main()
{
double x,z;
int n;
scanf("%d%lf",&n,&x);
z=sin(x,n);
printf("%.3lf",z);
return 0;
}
但不知道为什么输出结果却为-92559631349317831000000000000000000000000000000000000000000000.000,,怎么就出现问题了- -。希望有人可以指点下