思维导图大纲

Codesys 如何添加库_C语言

前言

上回总结了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);
}

测试结果:

Codesys 如何添加库_常用函数库_02

  • 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);
}

测试结果:

Codesys 如何添加库_#include_03

  • 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);
}

测试结果:

Codesys 如何添加库_math.h_04

  • 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);
}

测试结果:

Codesys 如何添加库_常用函数库_05

  • 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);
}

测试结果:

Codesys 如何添加库_#include_06

  • 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);
}

测试结果:

Codesys 如何添加库_math.h_07

  • 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);
}

测试结果:

Codesys 如何添加库_C语言_08

  • 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);
}

测试结果:

Codesys 如何添加库_math.h_09

  • 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;
}

测试结果:

Codesys 如何添加库_#include_10

  • 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;
}

测试结果:

Codesys 如何添加库_Codesys 如何添加库_11

  • 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;
}

测试结果:

Codesys 如何添加库_常用函数库_12

  • 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);
}

测试结果:

Codesys 如何添加库_math.h_13

  • 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;
}

测试结果:

Codesys 如何添加库_C语言_14

  • 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;
}

测试结果:

Codesys 如何添加库_#include_15

  • 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;
}

测试结果:

Codesys 如何添加库_C语言_16

  • 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;
}

测试结果:

Codesys 如何添加库_C语言_17

  • 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;
}

测试结果:

Codesys 如何添加库_math.h_18

  • 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;
}

测试结果:

Codesys 如何添加库_math.h_19

  • 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;
}

测试结果:

Codesys 如何添加库_常用函数库_20

  • 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;
}