1. 程式人生 > >C/C++筆試必須熟悉掌握的標頭檔案系列(二)——math.h/cmath

C/C++筆試必須熟悉掌握的標頭檔案系列(二)——math.h/cmath

1. 說明

  “math.h”是C語言中數學函式庫,包含我們常用的一些數學計算上會使用到的函式。C++中有對應相同作用的標頭檔案“cmath”,當然C++中兩個標頭檔案都可以使用,C++向C相容。

2. 筆試必掌握的內容

  關於數學函式的內容有很多,需要注意使用的地方就是,輸入引數絕大多數要求的是double雙浮點型別。所以切記使用的條件:

double dRel;
int a =10;
dRel = sqrt(a);         //錯誤,sqrt輸入引數要求是double型別
dRel = sqrt((double)a); //正確

  面試中常會使用的主要有以下幾個:
  double log (double);      以e為底的對數
  double log10 (double);    以10為底的對數
  double pow(double x,double y);計算x的y次冪
  double exp (double);     求取自然數e的冪
  double sqrt (double);     開平方
  int   abs(int i);       求整型的絕對值
  double fabs (double);     求實型的絕對值

3. 包含的函式介面

1、 三角函式
  double sin(double);正弦
  double cos(double);餘弦
  double tan(double);正切
2 、反三角函式
  double asin (double); 結果介於[-PI/2,PI/2]
  double acos (double); 結果介於[0,PI]
  double atan (double); 反正切(主值),結果介於[-PI/2,PI/2]
  double atan2 (double,double); 反正切(整圓值),結果介於[-PI,PI]
3 、雙曲三角函式
  double sinh (double);
  double cosh (double);
  double tanh (double);
4 、指數與對數


  double frexp(double value,int *exp);這是一個將value值拆分成小數部分f和(以2為底的)指數部分exp,並返回小數部分f,即f*2^exp。其中f取值在0.5~1.0範圍或者0。
  double ldexp(double x,int exp);這個函式剛好跟上面那個frexp函式功能相反,它的返回值是x*2^exp
  double modf(double value,double *iptr);拆分value值,返回它的小數部分,iptr指向整數部分。
  double log (double); 以e為底的對數
  double log10 (double);以10為底的對數
  double pow(double x,double y);計算x的y次冪
  float powf(float x,float y); 功能與pow一致,只是輸入與輸出皆為單精度浮點數
  double exp (double);求取自然數e的冪
  double sqrt (double);開平方
5 、取整

  double ceil (double); 取上整,返回不比x小的最小整數
  double floor (double); 取下整,返回不比x大的最大整數,即高斯函式[x]
6 、絕對值
  int abs(int i); 求整型的絕對值
  double fabs (double);求實型的絕對值
  double cabs(struct complex znum);求複數的絕對值
7 、標準化浮點數
  double frexp (double f,int p); 標準化浮點數,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*); 將引數的整數部分通過指標回傳,返回小數部分
  double fmod (double,double); 返回兩引數相除的餘數
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);數學錯誤計算處理程式 

個人學習記錄,由於能力和時間有限,如果有錯誤望讀者糾正,謝謝!

轉載請註明出處:CSDN 無鞋童鞋。