利用泰勒公式,计算sin(x)的值,大家看看我哪里错了

a402150577 2010-11-16 04:06:32
泰勒公式,sin(x)=x-x^3/3!+x^5/5!......,相信大家都知道,题目要求要加到最后一项绝对值少于10-5次方。
这是我编的 ,结果是错的,不知道哪里错了,请老师们看看。


#include <stdio.h>
#include <math.h>

void main()
{
int i=1,a=1;
float t,y=0,x;
printf("请输入X的值\n");
scanf("%f",&x);
t=x/i;
while(fabs(t)>=1e-5)
{
y+=t;
i=i*(i+1)*(i+2);
t=-t*x*x/i;
a++;
}
printf("sin(x)=%f\n",y);

}
...全文
1609 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
a402150577 2010-11-16
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 cdsxyx 的回复:]
i=i*(i+1)*(i+2);
t=-t*x*x/i;
i=1时,i=6=3!
接着i=6*7*8了,显然不是5!
[/Quote]

#include <stdio.h>
#include <math.h>

void main()
{
int i=1,a=1,n=1;
float t,y=0,x;
printf("请输入X的值\n");
scanf("%f",&x);
t=x/i;
while(fabs(t)>=1e-5)
{
y=y+t;
i=i*(n+1)*(n+2);
n=n+2;
t=-t*x*x/i;
a++;
}
printf("sin(x)=%f\n",y);

}



我改成这样了,你看行不行
a402150577 2010-11-16
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 cdsxyx 的回复:]
i=i*(i+1)*(i+2);
t=-t*x*x/i;
i=1时,i=6=3!
接着i=6*7*8了,显然不是5!
[/Quote]
恩,谢谢。突然觉得自己好笨哦。。。
半斗 2010-11-16
  • 打赏
  • 举报
回复
i=i*(i+1)*(i+2);
t=-t*x*x/i;
i=1时,i=6=3!
接着i=6*7*8了,显然不是5!
a402150577 2010-11-16
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 zhao4zhong1 的回复:]
单步调试和设断点调试是程序员必须掌握的技能之一。
[/Quote]
我不是很懂啊,才刚学呢,我不是学软件的,但是学院是信息学院的
a402150577 2010-11-16
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 jim_king_2000 的回复:]
用double试试看?
[/Quote]
我用double,结果死了~~~
赵4老师 2010-11-16
  • 打赏
  • 举报
回复
单步调试和设断点调试是程序员必须掌握的技能之一。
Jim_King_2000 2010-11-16
  • 打赏
  • 举报
回复
用double试试看?

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧