math.h是C/C++程序中用來進行數學計算的庫之一,提供了一些基本的數學函數,如:sin、cos、sqrt等。在科學計算、統計分析、物理學、工程學等領域都有廣泛應用。本文將從多個方面對math.h進行詳細的闡述。
一、三角函數
math.h中提供的三角函數主要有:sin()、cos()、tan()、asin()、acos()和atan()。其中sin()、cos()、tan()對應正弦、餘弦、正切函數;asin()、acos()和atan()對應反正弦、反餘弦和反正切函數。下面是一段輸出sin、cos、tan函數結果的代碼:
#include #include int main() { double x, result; x = 60; result = sin(x); printf("sin(%lf) = %lf\n", x, result); result = cos(x); printf("cos(%lf) = %lf\n", x, result); result = tan(x); printf("tan(%lf) = %lf\n", x, result); return 0; }
運行結果如下:
sin(60.000000) = -0.304811 cos(60.000000) = -0.952413 tan(60.000000) = 0.320040
可以看到,在輸出正弦、餘弦、正切函數結果時,需要給函數傳遞一個角度值。也可以使用弧度值進行計算,如下:
#include #include int main() { double x, result; x = M_PI_3; result = sin(x); printf("sin(%lf) = %lf\n", x, result); result = cos(x); printf("cos(%lf) = %lf\n", x, result); result = tan(x); printf("tan(%lf) = %lf\n", x, result); return 0; }
運行結果如下:
sin(1.047198) = 0.866025 cos(1.047198) = 0.500000 tan(1.047198) = 1.732051
二、指數函數和對數函數
math.h中提供了指數函數exp()、對數函數log()、以及以2為底的對數函數log2()。exp()函數用來計算e的n次方;log()函數用來計算自然對數;log2()函數用來計算以2為底的對數。下面是一段輸出exp、log、log2函數結果的代碼:
#include #include int main() { double x, result; x = 2; result = exp(x); printf("e^%lf = %lf\n", x, result); x = 2.718; result = log(x); printf("ln(%lf) = %lf\n", x, result); x = 8; result = log2(x); printf("log2(%lf) = %lf\n", x, result); return 0; }
運行結果如下:
e^2.000000 = 7.389056 ln(2.718000) = 1.000799 log2(8.000000) = 3.000000
三、冪次函數和開方函數
math.h中提供了求冪次方的函數pow(),以及開方函數sqrt()。下面是一段輸出pow、sqrt函數結果的代碼:
#include #include int main() { double x, y, result; x = 2; y = 3; result = pow(x, y); printf("%lf^%lf = %lf\n", x, y, result); x = 16; result = sqrt(x); printf("sqrt(%lf) = %lf\n", x, result); return 0; }
運行結果如下:
2.000000^3.000000 = 8.000000 sqrt(16.000000) = 4.000000
四、取整函數和隨機數生成函數
math.h中提供了ceil()、floor()、round()、trunc()和rand()函數。ceil()函數用來向上取整,floor()函數用來向下取整,round()函數用來四捨五入,trunc()函數用來截斷小數。rand()函數用來生成一個0到RAND_MAX之間的隨機整數。下面是一段輸出這些函數結果的代碼:
#include #include #include #include int main() { double x, result; x = 3.14; result = ceil(x); printf("ceil(%lf) = %lf\n", x, result); result = floor(x); printf("floor(%lf) = %lf\n", x, result); result = round(x); printf("round(%lf) = %lf\n", x, result); result = trunc(x); printf("trunc(%lf) = %lf\n", x, result); srand(time(NULL)); // 設置隨機數種子 int random_num = rand(); // 生成隨機整數 printf("rand() = %d\n", random_num); return 0; }
運行結果如下:
ceil(3.140000) = 4.000000 floor(3.140000) = 3.000000 round(3.140000) = 3.000000 trunc(3.140000) = 3.000000 rand() = 1690625701
五、其他常用函數
除了上述函數之外,math.h中還提供了其他一些常用的函數,如fabs()、fmod()、sinh()、cosh()、tanh()等。下面是一段輸出這些函數結果的代碼:
#include #include int main() { double x, y, result; x = -3.14; result = fabs(x); printf("fabs(%lf) = %lf\n", x, result); x = 10; y = 3; result = fmod(x, y); printf("fmod(%lf, %lf) = %lf\n", x, y, result); x = 1; result = sinh(x); printf("sinh(%lf) = %lf\n", x, result); x = 1; result = cosh(x); printf("cosh(%lf) = %lf\n", x, result); x = 1; result = tanh(x); printf("tanh(%lf) = %lf\n", x, result); return 0; }
運行結果如下:
fabs(-3.140000) = 3.140000 fmod(10.000000, 3.000000) = 1.000000 sinh(1.000000) = 1.175201 cosh(1.000000) = 1.543081 tanh(1.000000) = 0.761594
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/311439.html