2 回答

TA貢獻1785條經(jīng)驗 獲得超4個贊
如果程序要解決數(shù)學(xué)問題,比如說求平方pow(x,2); 或者求平方根sqrt(x);或者求絕對值fabs(x);求絕對值函數(shù)、fabs三角函數(shù)、指數(shù)函數(shù)等數(shù)學(xué)函數(shù)。
這一類的函數(shù)在math.h中有聲明,便可直接調(diào)用,所以要用到。
擴展資料:
math.h一般見于C、C++程序設(shè)計,#include <math.h> 是包含math頭文件的意思。
注意事項
1、沒有現(xiàn)成的cot三角函數(shù),可以使用tan(PI/2-x)來實現(xiàn)
2、double atan2(double y,double x);取值范圍在(PI,PI)之間;這是一個不太常見的函數(shù),主要用來返回y/x的反正切值。
3、強調(diào)一點,1-3類 傳參都是針對以弧度表示的數(shù)值,非角度表示的數(shù)值。
4、對于一般的對數(shù)求解,考慮利用數(shù)學(xué)上的對數(shù)轉(zhuǎn)換來實現(xiàn)。

TA貢獻1831條經(jīng)驗 獲得超9個贊
用到下面的函數(shù)的時候就需要包含了。
數(shù)學(xué)函數(shù)庫,一些數(shù)學(xué)計算的公式的具體實現(xiàn)是放在math.h里,具體有:
1、 三角函數(shù)
double sin(double);正弦
double cos(double);余弦
double tan(double);正切
2 、反三角函數(shù)
double asin (double); 結(jié)果介于[-PI/2,PI/2]
double acos (double); 結(jié)果介于[0,PI]
double atan (double); 反正切(主值),結(jié)果介于[-PI/2,PI/2]
double atan2 (double,double); 反正切(整圓值),結(jié)果介于[-PI,PI]
3 、雙曲三角函數(shù)
double sinh (double);
double cosh (double);
double tanh (double);
4 、指數(shù)與對數(shù)
double frexp(double value,int *exp);這是一個將value值拆分成小數(shù)部分f和(以2為底的)指數(shù)部分exp,并返回小數(shù)部分f,即f*2^exp。其中f取值在0.5~1.0范圍或者0。
double ldexp(double x,int exp);這個函數(shù)剛好跟上面那個frexp函數(shù)功能相反,它的返回值是x*2^exp
double modf(double value,double *iptr);拆分value值,返回它的小數(shù)部分,iptr指向整數(shù)部分。
double log (double); 以e為底的對數(shù)
double log10 (double);以10為底的對數(shù)
double pow(double x,double y);計算x的y次冪
float powf(float x,float y); 功能與pow一致,只是輸入與輸出皆為浮點數(shù)
double exp (double);求取自然數(shù)e的冪
double sqrt (double);開平方
5 、取整
double ceil (double); 取上整,返回不比x小的最小整數(shù)
double floor (double); 取下整,返回不比x大的最大整數(shù),即高斯函數(shù)[x]
6 、絕對值
int abs(int i); 求整型的絕對值
double fabs (double);求實型的絕對值
double cabs(struct complex znum);求復(fù)數(shù)的絕對值
7 、標準化浮點數(shù)
double frexp (double f,int *p); 標準化浮點數(shù),f = x * 2^p,已知f求x,p (x介于[0.5,1])
double ldexp (double x,int p); 與frexp相反,已知x,p求f
8 、取整與取余
double modf (double,double*); 將參數(shù)的整數(shù)部分通過指針回傳,返回小數(shù)部分
double fmod (double,double); 返回兩參數(shù)相除的余數(shù)
9 、其他
double hypot(double x,double y);已知直角三角形兩個直角邊長度,求斜邊長度
double ldexp(double x,int exponent);計算x*(2的exponent次冪)
double poly(double x,int degree,double coeffs []);計算多項式
int matherr(struct exception *e);數(shù)學(xué)錯誤計算處理程序
source: 《C & C++ Code Capsules》
- 2 回答
- 0 關(guān)注
- 650 瀏覽
添加回答
舉報