#include#includeintjiecheng(intn){intresult=1;if(n==0)returnresult;else{while(n){result*=n;n–;}returnresult;}}doubledsin(doublex){doubleresult=x;intn=3;intsign=-1;doubletemp;while(1){temp=pow(x,n)/jiecheng(n);if(temp 000001)returnresult;temp*=sign;//变号控制result+=temp;n+=2;sign*=-1;}}intmain(){doublep;p=1;printf(“%lf%lf”,dsin(p),sin(p));return0;}//double类型的数据有误差,但是结果在可接受范围内//是利用展开进行运算,测试了sin(1)//阶乘可能会溢出泰勒怎么用。
版权声明:本站部分文章来源互联网,主要目的在于分享信息,版权归原作者所有,本站不拥有所有权,不承担相关法律责任,如有侵权请联系我们,本站将立刻删除。