c语言中的 math.h 数学函数库

Python011

c语言中的 math.h 数学函数库,第1张

一些数学计算的公式的具体实现是放在math.h里,具体有:

double sin (double x) x的正弦值

double cos (double x) x的余弦值

double tan (double x) x的正切

double asin (double x) 结果介于[-PI/2, PI/2],x值域为[-1,1]

double acos (double x) 结果介于[0, PI],x值域为[-1,1]

double atan (double x) 反正切(主值), 结果介于[-PI/2, PI/2]

double atan2 (double y, double x) 反正切(整圆值), 结果介于[-PI, PI]

double sinh (double x) x的双曲正弦值

double cosh (double x) x的双曲余弦值

double tanh (double x) x的双曲正切值

double exp (double x) 幂函数e^x

double pow (double x, double y) x^y,如果x=0且y<=0,或者x<0且y不是整型数,将产生定义域错误

double sqrt (double x) x的平方根,其中x>=0

double log (double x) 以e为底的对数,自然对数,x>0

double log10 (double x) 以10为底的对数,x>0

double ceil (double x) 取上整

double floor (double x) 取下整

double fabs (double x) x的绝对值

double frexp (double x, int *exp) 标准化浮点数, x = f * 2^exp, 已知x求f, exp ( x介于[0.5, 1] )并返回f值

double ldexp (double x, int exp) 与frexp相反, 已知x, exp求x*2^exp

double modf (double x, double *ip) 将参数的整数部分通过指针回传, 返回小数部分,整数部分保存在*ip中

double fmod (double x, double y) 返回两参数相除x/y的余数,符号与x相同。如果y为0,则结果与具体的额实现有关

#include<stdio.h>

#include <math.h>

//先定义一个阶乘函数

double fac(double n){

double f=0

if(n == 1 || n==0)

f =1

else

f = fac(n-1)*n

return f

}

//一个指数函数(次方)

double kvat(double n,double ci){

double chengf=1

for (int i=1i<=cii++) {

chengf = chengf*n

}

return chengf

}

double sinus(double x){

int z =-1

int j =1

double sin=x

for (j =3fabs( kvat(x,j)/fac(j) )>0.001 j+=2) {

//printf("%lf\n",kvat(x, j))

sin =sin + z*(kvat(x,j)/fac(j))

z = -z

}

return sin

}

int main(){

double jd,hudu

scanf("%lf",&jd)

hudu = (jd*M_PI)/180//这里的M_PI在math库里就是 圆周率pai

printf( "%.3lf",sinus(hudu))

return 0

}

包含头文件math.h,写成sin(x)的形式直接调用这个函数。其中x是double型弧度值。函数返回一个double值。如有double

x=3.1415926/180*30,那么printf("sin30°

=

%f\n",sin(x))将输出sin30°

=

0.500000。

修改建议

您的回答内容不完整

知识型提问需要先直接对提问进行回复,开门见山,再对相关知识点进行延伸,如:http://t.cn/RL6ROi3加油哦!

你拒绝认证吧,这没有完善的必要了,学过三角函数的人都能看懂,看了10页C教科书的也都知道怎么写了。还要怎样“开门见山”,怎样“延伸”?难道还得解释sin是对边比斜边?