数学库math.h中常用函数实例

1.绝对值

函数原型:int abs(int x);

  功能:求整数x的绝对值。

  参数:

    x:想要求其绝对值的原整数

  返回值:

    所传入整数的绝对值。

 1 /*************************************************************************
 2     > File Name: abs.c
 3     > Author: yudongqun
 4     > Mail: qq2841015@163.com
 5     > Created Time: Fri 16 Oct 2020 10:54:07 AM CST
 6  ************************************************************************/
 7 
 8 #include <stdio.h>
 9 #include <math.h>
10 
11 int main(void) {
12     int n;
13     while (scanf("%d", &n) != EOF) {
14         printf("The absolute is %d: %d\n", n, abs(n));
15     }
16 }

函数原型:double fabs(double x);

  功能:求浮点数x的绝对值。

  参数:

    x:想要求其绝对值的原浮点数

  返回值:

    所传入浮点数的绝对值。

 1 /*************************************************************************
 2     > File Name: fabs.c
 3     > Author: yudongqun
 4     > Mail: qq2841015@163.com
 5     > Created Time: Fri 16 Oct 2020 11:01:59 AM CST
 6  ************************************************************************/
 7 
 8 #include <stdio.h>
 9 #include <math.h>
10 
11 int main(void) {
12     double d;
13     while (scanf("%lf", &d) != EOF) {
14         printf("The absolute of %.3lf is %.3lf\n", d, fabs(d));
15     }
16     return 0;
17 }

2.取整和取余

函数原型:double ceil(double num) 

  功能:得到不小于num的最小整数

  参数:

    num:双精度num

  返回值:不小于num的最小整数

 1 /*************************************************************************
 2     > File Name: ceil.c
 3     > Author: yudongqun
 4     > Mail: qq2841015@163.com
 5     > Created Time: Fri 16 Oct 2020 01:43:53 PM CST
 6  ************************************************************************/
 7 
 8 #include <stdio.h>
 9 #include <math.h>
10 
11 int main(void) {
12     double num;
13     while (scanf("%lf", &num) != EOF) {
14         printf("%.3f\n", ceil(num));
15     }
16     return 0;
17 }

函数原型:double floor(double x);

  功能:求不大于x的最大整数

  参数:

    x:双精度浮点数

  返回值

    不大于x的整数的双精度实数

/*************************************************************************
    > File Name: floor.c
    > Author: yudongqun
    > Mail: qq2841015@163.com
    > Created Time: Fri 16 Oct 2020 01:54:18 PM CST
 ************************************************************************/

#include <stdio.h>
#include <math.h>

int main(void) {
    double num;
    while (scanf("%lf", &num) != EOF) {
        printf("%.3lf\n", floor(num));
    }
    return 0;
}

3.指数与对数

函数原型:double sqrt(double x) 

  功能:计算x的开平方

  参数:

    x:要开方的双精度数值(x>=0)

  返回值:x开放后的运算结果

 1 /*************************************************************************
 2     > File Name: sqrt.c
 3     > Author: yudongqun
 4     > Mail: qq2841015@163.com
 5     > Created Time: Fri 16 Oct 2020 02:05:28 PM CST
 6  ************************************************************************/
 7 
 8 #include <stdio.h>
 9 #include <math.h>
10 
11 int main(void) {
12     double num;
13     while (scanf("%lf", &num) != EOF) {
14         printf("%.3lf\n", sqrt(num));
15     }
16     return 0;
17 }

函数原型:double pow(double x, double y);

  功能:计算以x为底的y次幂,即xy

  参数:

    x:底数

    y:幂数

  返回值:x的值

 1 /*************************************************************************
 2     > File Name: pow.c
 3     > Author: yudongqun
 4     > Mail: qq2841015@163.com
 5     > Created Time: Fri 16 Oct 2020 02:02:41 PM CST
 6  ************************************************************************/
 7 
 8 #include <stdio.h>
 9 #include <math.h>
10 
11 int main(void) {
12     double x, y;
13     while (scanf("%lf %lf", &x, &y) != EOF) {
14         printf("%.3lf\n", pow(x, y));
15     }
16     return 0;
17 }

前面我们有sqrt来求开方值,但是我们如要求某个数的开立方值呢?其实我们可以用pow函数来实现,即3√X = X1/3 ,pow(x, 1.0/3);就可以实现开立方了。

 1 /*************************************************************************
 2     > File Name: pow1.c
 3     > Author: yudongqun
 4     > Mail: qq2841015@163.com
 5     > Created Time: Fri 16 Oct 2020 02:25:02 PM CST
 6  ************************************************************************/
 7 
 8 #include <stdio.h>
 9 #include <math.h>
10 
11 int main(void) {
12     double x, y;
13     int z;
14     while (scanf("%lf %lf %d", &x, &y, &z) != EOF) {
15         printf("pow(%.3lf, %.3lf/%d): %.3lf\n", x, y, z, pow(x, y/z));
16     }
17     return 0;
18 }

函数原型:doule log(double x)

  功能:求x以e为底的对数值

  参数:

    x:某个实数

  返回值:返回logex的结果

 1 /*************************************************************************
 2     > File Name: log.c
 3     > Author: yudongqun
 4     > Mail: qq2841015@163.com
 5     > Created Time: Fri 16 Oct 2020 02:41:45 PM CST
 6  ************************************************************************/
 7 
 8 #include <stdio.h>
 9 #include <math.h>
10 
11 int main(void) {
12     double x;
13     while (scanf("%lf", &x) != EOF) {
14        printf("log(%.3lf): %.3lf", x, log(x));
15     }
16     return 0;
17 }

函数原型:doule log10(double x)

  功能:求x以e为底的对数值

  参数:

    x:某个实数

  返回值:返回log10x的结果

/*************************************************************************
    > File Name: log10.c
    > Author: yudongqun
    > Mail: qq2841015@163.com
    > Created Time: Fri 16 Oct 2020 02:46:45 PM CST
 ************************************************************************/

#include <stdio.h>
#include <math.h>

int main(void) {
    double num;
    while (scanf("%lf", &num) != EOF) {
        printf("log10(%.3lf): %.3lf\n", num, log10(num));
    }
    return 0;
}

 

posted @ 2020-10-16 15:44  ydqun  阅读(900)  评论(0编辑  收藏  举报