c语言函数库cos c语言函数库 查询手册

c语言cos和sin是怎么用的?

在C语言中要使用三角函数的话,首先备哪燃要包含math.h头文件。

成都创新互联专注于康平网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供康平营销型网站建设,康平网站制作、康平网页设计、康平网站官网定制、小程序开发服务,打造康平网络公司原创品牌,更为您提供康平网站排名全网营销落地服务。

其次,缓段自变量的值必须要以弧度为单位,括号要使用英文标点。比如,求sin(30°)的话,把度数换算为弧度,要先除以180,再仿虚乘以π。

要用以下的语句:

double x;

x=sin(30/180*3.1415926);

一道C语言求cos的题目

本质有问题。

cos(x) = x^0/0!-x^2/2!+x^4/4!-x^6/6!+……

这个公式是运用泰勒公式把函数 f(x)=cos(x) 在 x=0 点展开成多项式 ,当 n 不是很大时 ,只有 x=0 附近的数才能算出比较准确的值,而当 n 很大时 n! 也非常大 ,这时若 x1 那么 x^n 也非常大 ,如果仍采用常规措施怎么可能会扒返信对呢?不溢出才怪。

给一些提示:

1,利用函数周期性,始终保持较小的 x ;

2,如果已经求得 t = x^n/n! ,那么

x^(n+2)/(n+2)! = t * x^2 / ( (n+1)*(n+2)) ;

这样整个运算过程中就能尽量避免出现太大的值 ,并能提高效率 ,这只是个思路世耐,实春轮现时请注意细节。

顺便给个粗略的实现,仅供参考,如下:

double funcos(double e, double x)

{

int flag = 1,m = 0;

double k = 1 ,sum = 0;

x = fmod(x,2*3.1415926) ;

while( fabs(k) = e || fabs(sum) 1 ){

sum += flag*k;

k /= ( (m+1)*(m+2) / (x*x) );

m += 2;

flag = -flag;

}

return sum;

}

你的程序其他地方没有问题,printf 不同于 scanf ,会自动对精度进行扩展,所以 printf("%f",...); 可以输出 double 。

c语言求cos近似值

显然读者想要通过泰基宽勒展开式近似求解cos(X)

错误1:

while(-1E-7tt1E-7),应改为while(!(-1E-7tt1E-7))

错误2:double sum=1,t=1,f=1,v; ,嫌颤应改为double sum=1,t=1,f=1,v=1;

错误3:f=(-1.0)*x*x;,应改为f*=(-1.0)*x*x;

错误4: v=(i-1)*i;, v*=(i-1)*i;

最终程序为:

#includestdio.h

double cos(double x) //函数定义和形参说明

{

double sum=1,t=1,f=1,v=1; //t由分子分母两部分构成,f表示分子,v表示分母,r表示符号

int i=2;

while(!(-1E-7tt1E-7))

{

f*=(-1.0)*x*x;

v*=(i-1)*i;

i+=2;

t=(f/v);

sum+=t;

}

return(sum);

}

void main()

{

double x,a;

printf("搏者亮x=");

scanf("%lf",x);

a=cos(x);

printf("cos(%lf)=%lf\n",x,a);

}


本文名称:c语言函数库cos c语言函数库 查询手册
网站地址:http://myzitong.com/article/ddpeohe.html