程序是对的。从高数上面考虑的话,该级数的收敛域是负无穷到正无穷,但是当x很大的时候,会导致收敛的时候循环次数过多,看上去就和死循环差不多,但是是可以计算出结果的。
10年积累的成都网站制作、网站设计、外贸网站建设经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先建设网站后付款的网站建设流程,更有措勤免费网站建设让你可以放心的选择与我们合作。
你的factorial是一个函数,好象不可以直接乘以一个整数的吧,还有double factorial(int n)是不是需要一个返回值呢。
输入 1415026, 3 的时候,输出才是 -0.07522 。
sinx=sin(x);printf(%f\n,sinx);for(i=1;(fabs(sum-sinx))=0.000001;i=i++) /*你的程序中这句判断有错,应该是大于该精度内的sum值执行for内循环语句。
你的程序错误太多。直接给出按泰勒公式展开求sinx近似值的程序。
在写C语言的程序时,在开头加上一个头文件math.h即可。即可直接使用sin(x),特别注意x应该为弧度制,如果不是弧度制需要转化为弧度制。添加头文件方法:#includemath.h。
1、int main(){ double x,s,a;//为了提高精度,我把它们定义成双精度的。不知道你的e是用来干什么的。我感觉没用呀 int i;scanf(%lf,&x);//注意x为弧度,输入的值过大没意义只要在-2*∏~2*∏即可。
2、你的factorial是一个函数,好象不可以直接乘以一个整数的吧,还有double factorial(int n)是不是需要一个返回值呢。
3、for (; n;) { f *= n--; } return f;}测试截图:(分别测试了角度为 180度、90度、45度的弧度值)输入和输出语句,你不想要这么多的提示信息的话,自己修改一下就可以了。
4、sinx=sin(x);printf(%f\n,sinx);for(i=1;(fabs(sum-sinx))=0.000001;i=i++) /*你的程序中这句判断有错,应该是大于该精度内的sum值执行for内循环语句。
5、在写C语言的程序时,在开头加上一个头文件math.h即可。即可直接使用sin(x),特别注意x应该为弧度制,如果不是弧度制需要转化为弧度制。添加头文件方法:#includemath.h。
1、输入 1415026, 3 的时候,输出才是 -0.07522 。
2、{ double x,s,a;//为了提高精度,我把它们定义成双精度的。不知道你的e是用来干什么的。我感觉没用呀 int i;scanf(%lf,&x);//注意x为弧度,输入的值过大没意义只要在-2*∏~2*∏即可。
3、您好,是这样的:泰勒展开是这个:sinx=x-x^3/3!+x^5/5!-..下面给出算20项的程序。
4、你的程序错误太多。直接给出按泰勒公式展开求sinx近似值的程序。
5、if(i%2!=0) /*当i为奇数时,才执行,把偶数跳过,但s的值仍变化,这样除以的就是阶乘。