c语言math.h常用函数,C语言中math.h定义了哪些函数

//1。三角函数

double sin(double);

//1。1。正弦

double cos(double);

//1。2。余弦

double tan(double);

//1。

3。正切

//2。反三角函数

double asin (double);?

//2。1。结果介于[-PI/2,PI/2]

double acos (double);?

//2。

2。结果介于[0,PI]搜索

double atan (double);?

//2。3。反正切(主值),结果介于[-PI/2,PI/2]

double atan2 (double,double);?

//2。

4。反正切(整圆值),结果介于[-PI,PI]

//3。双曲三角函数

double sinh (double);

//3。1。双曲正弦函数

double cosh (double);

//3。

2。双曲余弦函数

double tanh (double);

//3。3。双曲正切函数

//4。指数与对数

double frexp(double value,int *exp);

//4。

1。这是一个将value值拆分成小数部分f和(以2为底的)指数部分exp,并返回小数部分f,即f*2^exp。其中f取值在0。5~1。0范围或者0。

double ldexp(double x,int exp);

//4。

2。这个函数刚好跟上面那个frexp函数功能相反,它的返回值是x*2^exp

double modf(double value,double *iptr);

//4。3。拆分value值,返回它的小数部分,iptr指向整数部分。

double log (double);

//4。4。以e为底的对数

double log10 (double);

//4。5。以10为底的对数

double pow(double x,double y);

//4。

6。计算x的y次幂

float powf(float x,float y);?

//4。7。功能与pow一致,只是输入与输出皆为浮点数

double exp (double);

//4。

8。求取自然数e的幂

double sqrt (double);

//4。9。开平方

//5。取整

double ceil (double);?

//5。

1。取上整,返回不比x小的最小整数

double floor (double);

//5。2。取下整,返回不比x大的最大整数,即高斯函数[x]

//6。绝对值

int abs(int i);

//6。

1。求整型的绝对值

double fabs (double);

//6。2。求实型的绝对值

double cabs(struct complex znum);

//6。

3。求复数的绝对值

//7。标准化浮点数

double frexp (double f,int *p);?

//7。1。标准化浮点数,f = x * 2^p,已知f求x,p (x介于[0。

5,1])

double ldexp (double x,int p);?

//7。2。与frexp相反,已知x,p求f

//8。取整与取余

double modf (double,double*);?

//8。

1。将参数的整数部分通过指针回传,返回小数部分

double fmod (double,double);?

//8。2。返回两参数相除的余数

//9。其他

double hypot(double x,double y);

//9。

1。已知直角三角形两个直角边长度,求斜边长度

double ldexp(double x,int exponent);

//9。2。计算x*(2的exponent次幂)

double poly(double x,int degree,double coeffs []);

//9。

3。计算多项式

int matherr(struct exception *e);

//9。4。数学错误计算处理程序

追答 : 追问:

double ldexp (double x,int p); 与frexp相反,已知x,p求f

double ldexp(double x,int exponent);计算x*(2的exponent次幂)

这两个。

。。有区别吗

……

追答:

就函数方法来说,没有区别,

就是一个“由两个源数据(一个双浮点数x、一个整型数p)得出一个双浮点数”的方法,

p和exponent实际上是一样的,都只是一个形参名,实际传参都是一个整型数;

之所以分了两种公式表述,是为了不同目的需要用这个类时、可以快速查找相关函数;

……

另,

C语言的math。

h是个比较成熟的类,

你可以找他的源代码来看,

CSDN和CODEFORGE还有其他很多网站里都有,

不过源代码很多、360问答里贴不下;

如果你对某个函数有兴趣,

不妨单独开一个问题供大家讨论。

追答 : 追问:

double ldexp (double x,int p); 与frexp相反,已知x,p求f

double ldexp(double x,int exponent);计算x*(2的exponent次幂)

……

追答:

首先明白数学公式:f=lg(a),即

对数=lg(真数);

而在编程中为了适应计算机的性能,使用的公式是

对数=整数*((log2)(尾数));

仔细查看frexp(),即原答索引7。

1,

是由真数求尾数和整数;

反之,由尾数和整数作为源数据求对数的方法,就是7。2的ldexp(),

是由尾数和整数求真数;

同样,9。2中求的正是由尾数和整数来求真数。

……

备注:

7。1中形参*p其实是多给出一个返回值可以存放的地址,

也就是说这个函数其实给出了两个返回值,

而不是需要两个传参。

全部

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值