这一篇本来准备放在后面再写的,想了半天还是决定先写了
这篇文章中我们将介绍一系列的数学函数,算是为后面我们写程序做一些准备
在这篇文章中,我仅给出代码,不做演示,所有请大家自己对代码进行实验(很重要)
c语言的标准库中已经帮我们实现了许多数学函数
在使用函数之前,我们需要对这些函数进行“声明”,否则编译器是不认识这些函数的。
库函数的声明不需要我们自己进行,它们都已经写入“头文件”了,用之前只需要将它“包含”进来
就像使用printf需要include <stdio.h>一样,使用数学函数就需要include <math.h>
math是数学,这个不多解释。
因此,只要使用到了任何标准库提供的数学函数,我们就必须(除非你手工进行声明)在程序开头加上
#include <math.h>
下面的代码可以作为一个模板,下面的所有例子都可以通过将注释修改为相关代码而执行
#include <stdio.h> #include <math.h> int main() { int int_a = -2; double double_a = -2.0; //add your code here 在此处添加代码 return 0; }
abs()
我们先从绝对值函数开始,若想求一个数的绝对值,只需要abs就行了,如
int_a = abs(int_a); printf("%d\n", int_a);
值得注意的是,abs函数只支持int型的数据,如果要求一个double值的绝对值呢?
那就需要“升级版”:fabs()
用法完全相同,但是参数却是double型的(如果你给的是float类型的,系统会自动帮你转换)
double_a = fabs(double_a); printf("%f\n", double_a);
sqrt()
有时候我们需要计算平方根,这样这个函数就派上用场了
sqrt()将接受一个double类型的参数,让后它将返回给你平方根
double_a = fabs(double_a); double_a = sqrt(double_a); printf("%f\n", double_a);
但是我们一般喜欢这样写
double_a = sqrt(fabs(double_a)); printf("%f\n", double_a);
甚至是
printf("%f\n", sqrt(fabs(double_a)));
pow()
在计算一个数的幂时,就需要用到pow()了
这个函数有两个参数pow(double x, double y);,参数x和y都是double类型的
函数返回的值是x的y次幂
printf("%g\n", pow(2, 10));
上面的程序运行将显示1024,这是2的10次方的值
切记,这个函数返回的值是double类型,因此输出需要使用%f或者%g!(当然,也需要一个double类型变量去接收它)
如果你觉得pow函数仅仅如此那就大错特错了,既然它的参数都是double类型,说明这个函数肯定能计算非整数幂!我们来试一下
printf("%g\n", pow(2, 1.5));
这样一来,pow函数就很有用了。上面的sqrt函数只能计算平方根,立方根怎么办?
求它的三分之一次幂不就好了
printf("%g\n", pow(8, 0.3333333333));
8的立方根是2,这应该是此程序的结果
log(), log10()
这两个一看就知道是求对数的了
log10()是求以10为底的对数,log()则是以e为底
用法和前面的sqrt()类似,请自己写出代码
如果你要问如果我要算别的底的对数怎么办?
还能怎么办,换底公式呗!
三角函数
一般来说,这些函数用的不像上面的那么多
sin(), cos(), tan()
以及反三角函数asin(),acos(),atan()
用法和sqrt类似,同样不给出代码!
标准库的数学函数还有几个,再往下写我估计你就想右上角单击了……
所以后面用得上的地方再说吧