weixin_46523951 2020-03-10 11:46 采纳率: 75%
浏览 2139

C语言用泰勒计算sin(x) 的值,要求最后一项的绝对值小于1e-5。请问我这段程序出错在哪?

泰勒级数sin(x)=x-x^3/3!+x^5/5!-x^7/7!...

#include
#include
int main()
{
double x,s,t,q;
int i,m,n;
printf("x=");
scanf("%lf",&x);
m=1;
n=1;
t=x;//t指代这一项的值
q=x;//q指代x的n次方
s=x;//s指代sinx
for (i=3;fabs(t)>=1e-5;i=i+2)
{ m=m*(i-1)*i;//m指代分母上的n阶乘
q=x*x*q;
n=(-1)*n;//n用来改变符号
t=n*q/m;
s=s+t;
}
printf("sin(x)=%lf\n",s);
return 0;
}

我想问一下我这段程序哪里出错了,输入-2~2之间的数都是可以运行且运行正确的,如图一。
但是输入其他的数字就无法运行,就如图二所示,按了回车也没用图片说明图片说明

  • 写回答

3条回答 默认 最新

  • 关注

    死循环了,所以没有了输出

    评论

报告相同问题?

悬赏问题

  • ¥15 高德地图点聚合中Marker的位置无法实时更新
  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办