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