函式介紹
C語言中之數學函式
C語言提供了以下的數學函式,要使用這些函式時,在程式檔案頭必須加入:
#include <math.h>
編譯時,必須加上參數「-lm」(表示連結至數學函式庫),例如「gcc -lm test.c」。
函式之自變數與傳回之值型別見自變數或函式前之型別宣告。
函式已經在「math.h」或其它標頭檔宣告過了,因此在使用時不必再加型別宣告,例如「y=sin(x);」,不用寫成「y=double sin(double x);」。
函式說明
double sin(double x)
x 的正弦函式值
double cos(double x)
x 的餘弦函式值
double tan(double x)
x 的正切函式值
double asin(double x)
x 的反正弦函式值 sin-1x,x的值在 [-1,1] 之間,傳回的值在 [-p/2,p/2] 之間
double acos(double x)
x 的反餘弦函式值cos-1x,x的值在 [-1,1] 之間,傳回的值在 [-p/2,p/2] 之間
double atan(double x)
x 的反正切函式值tan-1x,傳回的值在 [-p/2,p/2] 之間
double atan2(double y, double x)
y/x 的反正切函式值tan-1(y/x),傳回的值在 [-p, p] 之間
double sinh(double x)
x 的雙曲正弦函式值
double cosh(double x)
x 的雙曲餘弦函式值
double tanh(double x)
x 的雙曲正切函式值
double exp(double x)
x 的指數函式 ex
double log(double x)
x 的自然對數 ln(x),x > 0
double log10(double x)
x 底數為 10 的對數,log10x,x > 0
double pow(double x, double y)
x 的 y 次方 xy
double sqrt(double x)
x 的根號值 √x
double ceil(double x)
不小於 x 的最小整數(但其型別為 double)
double floor(double x)
不大於 x 的最大整數(但其型別為 double)
int abs(int x)
整數 x 的絕對值 |x|
long labs(long x)
長整數 x 的絕對值 |x|
double fabs(double x)
實數 x 的絕對值 |x|
double ldexp(double x, int n)
x?2n
double fmod(double x, double y)
x/y 的浮點數餘數,符號與 x 相同
函式範例
範例:各個數學函式的使用方法
#include <stdio.h>
#include <math.h>
#define PI 3.14159
int main(void)
{
double x,y,z;
int n;
x=4.0;
y=sqrt(x);
printf("x=%fty=%fn",x,y);
x=PI/4;
y=sin(x);
printf("x=%fty=%fn",x,y);
x=2.0;
y=3.0;
z=pow(x,y);
printf("x=%fty=%ftz=%fn",x,y,z);
x=1.5;
n=4;
y=ldexp(x,n);
printf("x=%FTN=%dty=%fn",x,n,y);
return 0;
}