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-tw/n/311439.html
微信掃一掃
支付寶掃一掃