输入精度 e 和 x,用下列公式求cos(x)的近似值
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/18 14:14:20
#include <stdio.h> //头文件置顶#include <math.h>double fact(int n){\
#include"stdio.h"#include"math.h"intjiecheng(inti){\x09intk=1;\x09while(i>=1)\x09{\x09\x09k*=i;\x09\
#include#include//这个函数需要返回double类型,不然结果很快就溢出了doublef(intn){\x05inti;\x05doublem=1.0;\x05for(i=1;i=e)
intf(intn){inti=1,s=1;while(i
#include#includeintmain(void){intfun(inti);inti;floatsum=0.0,x;inttemp=1;scanf("%f",&x);sum=x;for(i=
g再问:shenmeyisi什么意思?再答:youaresobed.itisfgasdwswimmingdoingin.再问:汗英语也说得这么糊涂你还是用拼音说吧还有这程序是我自己写的但我实在查不出哪
pow(x,y)要求x>0,所以pow(-1,a/2)是错的其实,符号用k=k*(-1)就可以控制;x^n/n!=x^(n-2)*x*x/((n-2)!*(n-1)*n)也就是利用前项的结果就可以求,
具体代码如下:#includeintmain(){doublee=1,index;inti=1,j=1;do{i*=j;index=1.0/i;e+=index;j++;}while(index>=1
将while(fabs(sum)>=e){item=flag*pow(x,i)*1.0/fact(n);sum=sum+item;flag=-flag;i=i+2;n=n+2;}改为:do{item=
#include<stdio.h>#include<math.h>int main(void){ double x, e,cosx;&n
因为你的item一开始没有初始化编译器就给你一个特别小的负数所以你运行就直接跳出while循环了再问:初始了item=1后,还是不行...是不是程序上问题...再答:item=flag*pow(x,2
这个是用N阶麦克劳林公式求函数值,我马上帮你写.麻烦采纳,谢谢!
认真看了你的代码,没有问题,只是我用的VS2010sum=sum+pow(-1,n+1)*pow(x,2*(n+1))*1.0/(fact(2*(n+1))); 这句里需要改一下
把y=y+item;改成y=y+(int)item;把printf("sum=%f\n",sum);改成printf("sum=%f\n",sum);就应该可以了.再问:改好之后变成这样了,可是正确答
#include#includemain(){doublee,x;doublecosx(doublex);scanf("%lf%lf",&e,&x);printf("%f\n",cosx(x));re
指出几个问题吧..(1)doublefuncos(doublee,doublex);函数申明应该放在main函数外面;(2)doublefuncos(doublee,doublex)函数里面的sum变
1#include2#include3#include4doubleabs(doublea){5returna>0?a:-a;6}7intfun(inta){8if(a==1)return1;9ret
源代码:在matlab中保存为:demimethod.mfunction[x,k]=demimethod(a,b,f,emg)%a,b:求解区间的两个端点%f:所求方程的函数名%emg:精度指标%x:
首先,我们知道sin(x)=sin(x+k*2pi),那么,我们首先去x1=x%2pi.这样做的目的,是为了让表达式在精度要求范围内,尽可能的有比较少的项.然后循环累加,跳出循环的条件是最后一项的值小