思维导图大纲
前言
上回总结了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;
}