思维导图大纲
前言
上回总结了string.h常用的字符串操作函数,这次总结一下另外的一个库函数math.h和数字运算有关联的库。
- double acos(double x)
函数原型:double acos(double x)
功能:返回以弧度表示的 x 的反余弦。arcos(x);
//时间:2019年11月15日
//作者:Kroner
//编译环境:VS 2019
//库函数 math.h
//函数原型 double acos(double x)
//函数功能: 返回以弧度表示的 x 的反余弦。
#define PI 3.14159265
#include "stdlib.h"
#include "stdio.h"
#include "math.h"
int main()
{
double x, ret, val;
x = 0.9;
val = 180.0 / PI;
ret = acos(x) * val;
printf("%lf 的反余弦是 %lf 度", x, ret);
return(0);
}
测试结果:
- double asin(double x)
函数原型:double asin(double x)
功能:返回以弧度表示的 x 的反余弦。arsin(x);
//时间:2019年11月15日
//作者:Kroner
//编译环境:VS 2019
//库函数 math.h
//函数原型 double asin(double x)
//函数功能: 返回以弧度表示的 x 的反正弦。
#define PI 3.14159265
#include "stdlib.h"
#include "stdio.h"
#include "math.h"
int main()
{
double x, ret, val;
x = 0.9;
val = 180.0 / PI;
ret = asin(x) * val;
printf("%lf 的反正弦是 %lf 度", x, ret);
return(0);
}
测试结果:
- double atan(double x)
函数原型:double atan(double x)
功能:返回以弧度表示的 x 的反正切。atan()
//时间:2019年11月15日
//作者:Kroner
//编译环境:VS 2019
//库函数 math.h
//函数原型 double atan(double x)
//函数功能: 返回以弧度表示的 x 的反正切,atan()
#define PI 3.14159265
#include "stdlib.h"
#include "stdio.h"
#include "math.h"
int main()
{
double x, ret, val;
x = 1.0;
val = 180.0 / PI;
ret = atan(x) * val;
printf("%lf 的反正切是 %lf 度", x, ret);
return(0);
}
测试结果:
- double atan2(double y, double x)
函数原型 double atan2(double y, double x)
函数功能: C 库函数 double atan2(double y, double x) 返回以弧度表示的 y/x 的反正切。y 和 x 的值的符号决定了正确的象限。
//时间:2019年11月15日
//作者:Kroner
//编译环境:VS 2019
//库函数 math.h
//函数原型 double atan2(double y, double x)
//函数功能: C 库函数 double atan2(double y, double x) 返回以弧度表示的 y/x 的反正切。y 和 x 的值的符号决定了正确的象限。
#define PI 3.14159265
#include "stdlib.h"
#include "stdio.h"
#include "math.h"
int main()
{
double x, y, ret, val;
x = -7.0;
y = 7.0;
val = 180.0 / PI;
ret = atan2(y, x) * val;
printf("x = %lf, y = %lf 的反正切", x, y);
printf("是 %lf 度\n", ret);
return(0);
}
测试结果:
- double cos(double x)
函数原型: double cos(double x)
函数功能:返回弧度角 x 的余弦。
//时间:2019年11月15日
//作者:Kroner
//编译环境:VS 2019
//库函数 math.h
//函数原型 double cos(double x)
//函数功能:返回弧度角 x 的余弦。
#define PI 3.14159265
#include "stdlib.h"
#include "stdio.h"
#include "math.h"
int main()
{
double x, ret, val;
x = 60.0;
val = PI / 180.0;
ret = cos(x * val);
printf("%lf 的余弦是 %lf 度\n", x, ret);
x = 90.0;
val = PI / 180.0;
ret = cos(x * val);
printf("%lf 的余弦是 %lf 度\n", x, ret);
return(0);
}
测试结果:
- double cosh(double x)
函数原型: double cosh(double x)
函数功能: 返回 x 的双曲余弦。
//时间:2019年11月15日
//作者:Kroner
//编译环境: VS 2019
//库函数 math.h
//函数原型: double cosh(double x)
//函数功能: 返回 x 的双曲余弦。
#define PI 3.14159265
#include "stdlib.h"
#include "stdio.h"
#include "math.h"
int main()
{
double x;
x = 0.5;
printf("%lf 的双曲余弦是 %lf\n", x, cosh(x));
x = 1.0;
printf("%lf 的双曲余弦是 %lf\n", x, cosh(x));
x = 1.5;
printf("%lf 的双曲余弦是 %lf\n", x, cosh(x));
return(0);
}
测试结果:
- double sin(double x)
函数原型: double sin(double x)
函数功能: 函数返回 x 的正弦。
//时间:2019年11月15日
//作者:Kroner
//编译环境: VS 2019
//库函数 math.h
//函数原型: double sin(double x)
//函数功能: 函数返回 x 的正弦。
#define PI 3.14159265
#include "stdlib.h"
#include "stdio.h"
#include "math.h"
int main()
{
double x, ret, val;
x = 45.0;
val = PI / 180;
ret = sin(x * val);
printf("%lf 的正弦是 %lf 度", x, ret);
return(0);
}
测试结果:
- double sinh(double x)
函数原型: double sinh(double x)
函数功能: 返回 x 的双曲正弦。
//时间:2019年11月15日
//作者:Kroner
//编译环境: VS 2019
//库函数 math.h
//函数原型: double sinh(double x)
//函数功能: 返回 x 的双曲正弦。
#include <stdio.h>
#include <math.h>
int main()
{
double x, ret;
x = 0.5;
ret = sinh(x);
printf("%lf 的双曲正弦是 %lf 度", x, ret);
return(0);
}
测试结果:
- double tanh(double x)
函数原型: double tanh(double x)
函数功能: 返回 x 的双曲正切。
//时间:2019年11月15日
//作者:Kroner
//编译环境: VS 2019
//库函数 math.h
//函数原型: double tanh(double x)
//函数功能: 返回 x 的双曲正切。
#include <stdio.h>
#include <math.h>
int main()
{
double x, ret;
x = 0.5;
ret = tanh(x);
printf("%lf 的双曲正切是 %lf 度", x, ret);
return 0;
}
测试结果:
- double exp(double x)
函数原型: double exp(double x)
函数功能: 返回 e 的 x 次幂的值。
//时间:2019年11月15日
//作者:Kroner
//编译环境: VS 2019
//库函数 math.h
//函数原型: double exp(double x)
//函数功能: 返回 e 的 x 次幂的值。
#include <stdio.h>
#include <math.h>
int main()
{
double x = 0;
printf("e 的 %lf 次幂是 %lf\n", x, exp(x));
printf("e 的 %lf 次幂是 %lf\n", x + 1, exp(x + 1));
printf("e 的 %lf 次幂是 %lf\n", x + 2, exp(x + 2));
return 0;
}
测试结果:
- double frexp(double x, int *exponent)
函数原型: double frexp(double x, int *exponent)
函数功能: 把浮点数 x 分解成尾数和指数。返回值是尾数,并将指数存入 exponent 中。所得的值是 x = mantissa * 2 ^ exponent。
详细说明:该函数返回规格化小数。如果参数 x 不为零,则规格化小数是 x 的二次方,且它的绝对值范围从 1/2(包含)到 1(不包含)。如果 x 为零,则规格化小数是零,且零存储在 exp 中。
//时间:2019年11月15日
//作者:Kroner
//编译环境: VS 2019
//库函数 math.h
//函数原型: double frexp(double x, int *exponent)
//函数功能: 把浮点数 x 分解成尾数和指数。返回值是尾数,并将指数存入 exponent 中。所得的值是 x = mantissa * 2 ^ exponent。。
#include <stdio.h>
#include <math.h>
int main()
{
double x = 1024, fraction;
int e;
fraction = frexp(x, &e);
printf("x = %.2lf = %.2lf * 2^%d\n", x, fraction, e);
return 0;
}
测试结果:
- double ldexp(double x, int exponent)
函数原型: double ldexp(double x, int exponent)
函数功能: 返回 x 乘以 2 的 exponent 次幂。返回 x * 2 exp。
//时间:2019年11月15日
//作者:Kroner
//编译环境: VS 2019
//库函数 math.h
//函数原型: double ldexp(double x, int exponent)
//函数功能: 返回 x 乘以 2 的 exponent 次幂。
#include <stdio.h>
#include <math.h>
int main()
{
double x, ret;
int n;
x = 0.65;
n = 3;
ret = ldexp(x, n);
printf("%f * 2^%d = %f\n", x, n, ret);
return(0);
}
测试结果:
- double log(double x)
函数原型: double log(double x)
函数功能: 返回 x 的自然对数(基数为 e 的对数)
//时间:2019年11月15日
//作者:Kroner
//编译环境: VS 2019
//库函数 math.h
//函数原型: double log(double x)
//函数功能: 返回 x 的自然对数(基数为 e 的对数)
#include <stdio.h>
#include <math.h>
int main()
{
double x, ret;
x = 2.7;
/* 计算 log(2.7) */
ret = log(x);
printf("log(%lf) = %lf", x, ret);
return 0;
}
测试结果:
- double modf(double x, double *integer)
函数原型: double modf(double x, double *integer)
函数功能: 返回值为小数部分(小数点后的部分),并设置 integer 为整数部分。
//时间:2019年11月15日
//作者:Kroner
//编译环境: VS 2019
//库函数 math.h
//函数原型: double modf(double x, double *integer)
//函数功能: 返回值为小数部分(小数点后的部分),并设置 integer 为整数部分。
#include <stdio.h>
#include <math.h>
#include<stdio.h>
#include<math.h>
int main()
{
double x, fractpart, intpart;
x = 8.123456;
fractpart = modf(x, &intpart);
printf("整数部分 = %lf\n", intpart);
printf("小数部分 = %lf \n", fractpart);
return 0;
}
测试结果:
- double pow(double x, double y)
函数原型: double pow(double x, double y)
函数功能: 返回 x 的 y 次幂,即 x的y平方
//时间:2019年11月15日
//作者:Kroner
//编译环境: VS 2019
//库函数 math.h
//函数原型: double pow(double x, double y)
//函数功能: 返回 x 的 y 次幂,即 x的y平方
#include <stdio.h>
#include <math.h>
int main()
{
printf("值 8.0 ^ 3 = %lf\n", pow(8.0, 3));
printf("值 3.05 ^ 1.98 = %lf", pow(3.05, 1.98));
return 0;
}
测试结果:
- double sqrt(double x)
函数原型: double sqrt(double x)
函数功能: 该函数返回 x 的平方根
//时间:2019年11月15日
//作者:Kroner
//编译环境: VS 2019
//库函数 math.h
//函数原型: double sqrt(double x)
//函数功能: 该函数返回 x 的平方根
#include <stdio.h>
#include <math.h>
int main()
{
printf("%lf 的平方根是 %lf\n", 4.0, sqrt(4.0));
printf("%lf 的平方根是 %lf\n", 5.0, sqrt(5.0));
return 0;
}
测试结果:
- double ceil(double x)
函数原型: double ceil(double x)
函数功能: 该函数返回不小于 x 的最小整数值
//时间:2019年11月15日
//作者:Kroner
//编译环境: VS 2019
//库函数 math.h
//函数原型: double ceil(double x)
//函数功能: 该函数返回不小于 x 的最小整数值,可以理解为近1法
#include <stdio.h>
#include <math.h>
int main()
{
float val1, val2, val3, val4;
val1 = 1.6;
val2 = 1.2;
val3 = 2.8;
val4 = 2.3;
printf("value1 = %.1lf\n", ceil(val1));
printf("value2 = %.1lf\n", ceil(val2));
printf("value3 = %.1lf\n", ceil(val3));
printf("value4 = %.1lf\n", ceil(val4));
return 0;
}
测试结果:
- double fabs(double x)
函数原型: double fabs(double x)
函数功能: 返回 x 的绝对值。
//时间:2019年11月15日
//作者:Kroner
//编译环境: VS 2019
//库函数 math.h
//函数原型: double fabs(double x)
//函数功能: 返回 x 的绝对值。
#include <stdio.h>
#include <math.h>
int main()
{
int a, b;
a = 1234;
b = -344;
printf("%d 的绝对值是 %lf\n", a, fabs(a));
printf("%d 的绝对值是 %lf\n", b, fabs(b));
return 0;
}
测试结果:
- double floor(double x)
函数原型: double floor(double x)
函数功能: 该函数返回不大于 x 的最大整数值。
//时间:2019年11月15日
//作者:Kroner
//编译环境: VS 2019
//库函数 math.h
//函数原型: double floor(double x)
//函数功能: 该函数返回不大于 x 的最大整数值,可以理解为去尾巴
#include <stdio.h>
#include <math.h>
int main()
{
float val1, val2, val3, val4;
val1 = 1.6;
val2 = 1.2;
val3 = 2.8;
val4 = 2.3;
printf("Value1 = %.1lf\n", floor(val1));
printf("Value2 = %.1lf\n", floor(val2));
printf("Value3 = %.1lf\n", floor(val3));
printf("Value4 = %.1lf\n", floor(val4));
return 0;
}
测试结果:
- double fmod(double x, double y)
函数原型: double fmod(double x, double y)
函数功能: 返回 x 除以 y 的余数。
//时间:2019年11月15日
//作者:Kroner
//编译环境: VS 2019
//库函数 math.h
//函数原型: double fmod(double x, double y)
//函数功能: 返回 x 除以 y 的余数。
#include <stdio.h>
#include <math.h>
int main()
{
float a, b;
int c;
a = 9.2;
b = 3.7;
c = 2;
printf("%f / %d 的余数是 %lf\n", a, c, fmod(a, c));
printf("%f / %f 的余数是 %lf\n", a, b, fmod(a, b));
return 0;
}