这题我的代码有点长,我估计很多人没有耐心看,或者随随便便粘贴一个答案过来,
所以如有大神赐教指点我程序的问题,小妹定感激不尽。
利用泰勒级数计算sinx的值(4分)
题目内容:
利用泰勒级数计算sinx的值,要求最后一项的绝对值小于,并统计出此时累加了多少项。不要使用pow函数编写程序。程序中所有实数的数据类型都是double类型。
sinx=x-x^3/3!+x^5/5!-x^7/7!+x^9/9!…………
#include
#include
#include
double calculatejiecheng(double n);
double calculatecifang(double m,double k);
int main()
{
double x,l,zhishu,he;
printf("Input x:\n");
scanf("%lf",&x);
he=0;
zhishu=1;
for(zhishu=1;abs(calculatecifang(x,zhishu)/calculatejiecheng(zhishu))<0.00001;zhishu=zhishu+2)
{
he=he+calculatecifang(x,zhishu)/calculatejiecheng(zhishu);
}
printf("sin(x)=%.3f,count=%d\n",he,(int)zhishu/2+1);
return 0;
}
double calculatejiecheng(double n)
{
if(n==1)
return 1;
else
return n*calculatejiecheng(n-1);//计算数的阶乘的函数
}
double calculatecifang(double m,double k)
{
double i;
double j;
for(i=1;i<=k;i++)
{
j=j*m;
}
if((int)(k)%4==1)
return j;
//计算x的n次方的相反数。
else
return j*-1;
}