用C语言程序算sinX的值

题目:利用泰勒级数sinx≈x-x^3/3!+x^5/5!-x^7/7!+x^9/9!-…,计算sinx的值。要求最后一项的绝对值小于10^-5,并统计出此时累加了多少项... 题目:利用泰勒级数sinx≈x-x^3/3!+x^5/5!-x^7/7!+x^9/9!-…,计算sinx的值。要求最后一项的绝对值小于10^-5,并统计出此时累加了多少项。
#include <stdio.h>
#include <math.h>
void main()
{
long double x,sinx;
int i=0,j=1;
long p=1;
printf("In sinx,x=");
scanf("%f",&x);
do{
i++;
if(i=1)
sinx=(pow(x,j))/p;
else if(i%2==0)
sinx=sinx-(pow(x,j))/p;
else
sinx=sinx+(pow(x,j))/p;
p=p*(j+1)*(j+2);
j=j+2;

}while(pow(x,j)/p<1e-5);
printf("sinx=%f\n",sinx);
}
为什么每次算都是-1.INF00的答案?求高人指点~
展开
 我来答
侯文宣旷代
2020-01-24 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:30%
帮助的人:612万
展开全部
#include
#include
/*计算n的阶乘*/
int factor(int n)
{
if(n==1)
return 1;
else
return factor(n-1)*n;
}
/*得到分子的值*/
double get_numerator(double x,int order)
{
return pow(x,order); //求x^order
}
/*得到分母的值*/
double get_denominator(int n)
{
return factor(n); //求n的阶乘
}
/*获得第n项的符号,即(-1)^n*/
int get_symbol(int n)
{
if(n%2 ==0) //n是偶数
return 1;
else
return -1;
}
int main()
{
int i;
double x;
double sin_x=0;
double tmp=0;
printf("please input the x:\n");
scanf("%lf",&x);
for(i=0;;i++)
{
tmp=sin_x; //暂时保存上一步得到的sin值
sin_x += get_numerator(x,2*i+1)/get_denominator(2*i+1)*get_symbol(i);
if(fabs(sin_x-tmp)<1e-6) //精度满足要求
break;
}
printf("sin(%lf)=%lf\n",x,sin_x);
return 0;
} /***********************************************************************
学好c语言,首先应该把语言的语法学好,这也是基础。尤其是注意指针部分,可以说这是c语言的精髓,也是c语言能够直接操作内存的犀利之处。
其次,应该多练代码,并且注意代码的可读性,规范性。
最好,能够亲身用c语言参加某个项目实践,毕竟实践出真知。
至于之后c++或者java的学习,要看自己的发展规划了。不过学好c语言,绝对对你今后学习其他语言有很大帮助。
*************************************************************************/
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
knife12
2010-11-08 · TA获得超过347个赞
知道小有建树答主
回答量:314
采纳率:0%
帮助的人:315万
展开全部
程序有几个问题:
1.long double型数据输入输出都要用%lf,而你都用的是%f。
2. if(i=1)此处应该为(x==1)
3.while(pow(x,j)/p<1e-5);此处应该为:pow(x,j)/p>1e-5

目前就发现这么多错误,但是答案貌似不对。你再检查检查。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式