数学库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:幂数
返回值:xy 的值
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; }