常用数学函数篇
abs
计算整型数的绝对值
头文件
#include <stdlib.h>
函数原型
int abs (int j);
说明:abs() 用来计算参数 j 的绝对值,然后将结果返回。
返回值:返回参数 j 的绝对值结果。
相关函数:labs, fabs
示例
#include <stdio.h>
#include <stdlib.h>
int main()
{
int answer;
answer = abs(-12);
printf("|-12| = %d\n", answer);
return 0;
}
执行
|-12| = 12
acos
取反余弦函数数值
头文件
#include <math.h>
函数原型
double acos (double x);
说明:acos() 用来计算参数x的反余弦值,然后将结果返回。参数 x 范围为 -1 至 1 之间,超过此范围则会失败。
返回值:返回 0 至 PI 之间的计算结果,单位为弧度,在函数库中角度均以弧度来表示。错误代码:
EDOM
:参数 x 超出范围。
附加说明:使用 GCC 编译时请加入
-lm
。相关函数:asin , atan , atan2 , cos , sin , tan
示例
#include <stdio.h>
#include <math.h>
int main()
{
double angle;
angle = acos(0.5);
printf("angle = %f\n", angle);
return 0;
}
执行
angle = 1.047198
asin
取反正弦函数值
头文件
#include <math.h>
函数原型
double asin (double x);
说明:asin() 用来计算参数x的反正弦值,然后将结果返回。参数 x 范围为 -1 至 1 之间,超过此范围则会失败。
返回值:返回 -PI/2 至 PI/2 之间的计算结果。错误代码:
EDOM
:参数 x 超出范围
附加说明:使用 GCC 编译时请加入
-lm
相关函数:acos , atan , atan2 , cos , sin , tan
示例
#include <stdio.h>
#include <math.h>
int main()
{
double angle;
angle = asin (0.5);
printf("angle = %f\n", angle);
return 0;
}
执行
angle = 0.523599
atan
取反正切函数值
头文件
#include <math.h>
函数原型
double atan(double x);
说明:atan() 用来计算参数 x 的反正切值,然后将结果返回。
返回值:返回 -PI/2 至 PI/2 之间的计算结果。
附加说明:使用 GCC 编译时请加入
-lm
相关函数:acos,asin,atan2,cos,sin,tan
示例
#include <stdio.h>
#include <math.h>
int main()
{
double angle;
angle =atan(1);
printf("angle = %f\n", angle);
return 0;
}
执行
angle = 1.570796
atan2
取得反正切函数值
头文件
#include <math.h>
函数原型
double atan2(double y, double x);
说明:atan2() 用来计算参数 y/x 的反正切值,然后将结果返回。
返回值:返回 -PI/2 至 PI/2 之间的计算结果。
附加说明:使用 GCC 编译时请加入
-lm
相关函数:acos,asin,atan,cos,sin,tan
示例
#include <stdio.h>
#include <math.h>
int main()
{
double angle;
angle = atan2(1,2);
printf("angle = %f\n", angle);
return 0;
}
执行
angle = 0.463648
ceil
取不小于参数的最小整型数
头文件
#include <math.h>
函数原型
double ceil(double x);
说明:ceil() 会返回不小于参数 x 的最小整数值,结果以 double 形态返回。
返回值:返回不小于参数 x 的最小整数值。
附加说明:使用 GCC 编译时请加入
-lm
相关函数:fabs
示例
#include <stdio.h>
#include <math.h>
int main()
{
double value[ ]={4.8,1.12,-2.2,0};
int i;
for (i=0;value[i]!=0;i++)
printf("%f => %f\n",value[i],ceil(value[i]));
return 0;
}
执行
4.800000 => 5.000000
1.120000 => 2.000000
-2.200000 => -2.000000
cos
取余玄函数值
头文件
#include <math.h>
函数原型
double cos(double x);
说明:cos() 用来计算参数 x 的余玄值,然后将结果返回。
返回值:返回 -1 至 1 之间的计算结果。
附加说明:使用 GCC 编译时请加入
-lm
相关函数:acos,asin,atan,atan2,sin,tan
示例
#include <stdio.h>
#include <math.h>
int main()
{
double answer = cos(0.5);
printf("cos (0.5) = %f\n",answer);
return 0;
}
执行
cos(0.5) = 0.877583
cosh
取双曲线余玄函数值
头文件
#include <math.h>
函数原型
double cosh(double x);
说明:cosh() 用来计算参数 x 的双曲线余玄值,然后将结果返回。数学定义式为 (exp(x)+exp(-x))/2。
返回值:返回参数x的双曲线余玄值。
附加说明:使用 GCC 编译时请加入
-lm
相关函数:sinh,tanh
示例
#include <stdio.h>
#include <math.h>
int main()
{
double answer = cosh(0.5);
printf("cosh(0.5) = %f\n",answer);
return 0;
}
执行
cosh(0.5) = 1.127626
exp
计算指数
头文件
#include <math.h>
函数原型
double exp(double x);
说明:exp() 用来计算以 e 为底的 x 次方值,即 ex 值,然后将结果返回。
返回值:返回 e 的 x 次方计算结果。
附加说明:使用 GCC 编译时请加入
-lm
相关函数:log,log10,pow
示例
#include <stdio.h>
#include <math.h>
int main()
{
double answer;
answer = exp (10);
printf("e^10 =%f\n", answer);
return 0;
}
执行
e^10 = 22026.465795
frexp
将浮点型数分为底数与指数
头文件
#include <math.h>
函数原型
double frexp( double x, int *exp);
说明:frexp() 用来将参数 x 的浮点型数切割成底数和指数。底数部分直接返回,指数部分则借参数 exp 指针返回,将返回值乘以 2 的 exp 次方即为 x 的值。
返回值:返回参数 x 的底数部分,指数部分则存于 exp 指针所指的地址。
附加说明:使用 GCC 编译时请加入
-lm
相关函数:ldexp,modf
示例
#include <stdio.h>
#include <math.h>
int main()
{
int exp;
double fraction;
fraction = frexp (1024, &exp);
printf("exp = %d\n", exp);
printf("fraction = %f\n", fraction);
return 0;
}
执行
exp = 11
fraction = 0.500000 # 0.5*(2^11)=1024
ldexp
计算 2 的次方值
头文件
#include<math.h>
函数原型
double ldexp(double x, int exp);
说明:ldexp() 用来将参数 x 乘上 2 的 exp 次方值,即 x*2exp。
返回值:返回计算结果。
附加说明:使用 GCC 编译时请加入
-lm
相关函数:frexp
示例
/* 计算3*(2^2)=12 */
#include <stdio.h>
#include <math.h>
int main()
{
int exp;
double x,answer;
answer = ldexp(3,2);
printf("3*2^(2) = %f\n",answer);
return 0;
}
执行
3*2^(2) = 12.000000
log
计算以 e 为底的对数值
头文件
#include <math.h>
函数原型
double log (double x);
说明:log() 用来计算以 e 为底的 x 对数值,然后将结果返回。
返回值:返回参数 x 的自然对数值。
错误代码:
EDOM
参数 x 为负数ERANGE
参数 x 为零值,零的对数值无定义
附加说明:使用 GCC 编译时请加入
-lm
相关函数:exp,log10,pow
示例
#include <stdio.h>
#include <math.h>
int main()
{
double answer;
answer = log (100);
printf("log(100) = %f\n",answer);
return 0;
}
执行
log(100) = 4.605170
log10
计算以 10 为底的对数值
头文件
#include <math.h>
函数原型
double log10(double x);
说明:log10() 用来计算以 10 为底的x对数值,然后将结果返回。
返回值:返回参数 x 以 10 为底的对数值。
错误代码:
EDOM
参数 x 为负数ERANGE
参数 x 为零值,零的对数值无定义
附加说明:使用 GCC 编译时请加入
-lm
相关函数:exp,log,pow
示例
#include <stdio.h>
#include <math.h>
int main()
{
double answer;
answer = log10(100);
printf("log10(100) = %f\n", answer);
return 0;
}
执行
log10(100) = 2.000000
pow
计算次方值
头文件
#include <math.h>
函数原型
double pow(double x, double y);
说明:pow() 用来计算以 x 为底的 y 次方值,即 xy 值,然后将结果返回。
返回值:返回 x 的 y 次方计算结果。
错误代码:
EDOM
参数 x 为负数且参数 y 不是整数。
附加说明:使用 GCC 编译时请加入
-lm
相关函数:exp,log,log10
示例
#include <stdio.h>
#include <math.h>
int main()
{
double answer;
answer =pow(2,10);
printf("2^10 = %f\n", answer);
return 0;
}
执行
2^10 = 1024.000000
sin
取正玄函数值
头文件
#include <math.h>
函数原型
double sin(double x);
说明:sin() 用来计算参数 x 的正玄值,然后将结果返回。
返回值:返回 -1 至 1 之间的计算结果。
附加说明:使用 GCC 编译时请加入
-lm
相关函数:acos,asin,atan,atan2,cos,tan
示例
#include <stdio.h>
#include <math.h>
int main()
{
double answer = sin (0.5);
printf("sin(0.5) = %f\n",answer);
return 0;
}
执行
sin(0.5) = 0.479426
sinh
取双曲线正玄函数值
头文件
#include <math.h>
函数原型
double sinh( double x);
说明:sinh() 用来计算参数 x 的双曲线正玄值,然后将结果返回。数学定义式为 (exp(x)-exp(-x))/2。
返回值:返回参数 x 的双曲线正玄值。
附加说明:使用 GCC 编译时请加入
-lm
相关函数:cosh,tanh
示例
#include <stdio.h>
#include <math.h>
int main()
{
double answer = sinh (0.5);
printf("sinh(0.5) = %f\n",answer);
return 0;
}
执行
sinh(0.5) = 0.521095
sqrt
计算平方根值
头文件
#include <math.h>
函数原型
double sqrt(double x);
说明:sqrt() 用来计算参数 x 的平方根,然后将结果返回。参数 x 必须为正数。
返回值:返回参数 x 的平方根值。
错误代码:
EDOM
参数 x 为负数。
附加说明:使用 GCC 编译时请加入
-lm
相关函数:hypotq
示例
/* 计算200的平方根值*/
#include <stdio.h>
#include <math.h>
int main()
{
double root;
root = sqrt (200);
printf("answer is %f\n",root);
return 0;
}
执行
answer is 14.142136
tan
取正切函数值
头文件
#include <math.h>
函数原型
double tan(double x);
说明:tan() 用来计算参数 x 的正切值,然后将结果返回。
返回值:返回参数 x 的正切值。
附加说明:使用 GCC 编译时请加入
-lm
相关函数:atan,atan2,cos,sin
示例
#include <stdio.h>
#include <math.h>
int main()
{
double answer = tan(0.5);
printf("tan (0.5) = %f\n",answer);
return 0;
}
执行
tan(0.5) = 0.546302
tanh
取双曲线正切函数值
头文件
#include <math.h>
函数原型
double tanh(double x);
说明:tanh() 用来计算参数x的双曲线正切值,然后将结果返回。数学定义式为 sinh(x)/cosh(x)。
返回值:返回参数 x 的双曲线正切值。
附加说明:使用 GCC 编译时请加入
-lm
相关函数:cosh,sinh
示例
#include <stdio.h>
#include <math.h>
int main()
{
double answer = tanh(0.5);
printf("tanh(0.5) = %f\n",answer);
return 0;
}
执行
tanh(0.5) = 0.462117