悲,好几天没更新了,我自罚三杯白开水。
OK,开始正题,3.27日 学习了math函数
math函数,顾名思义,就是关于数学运算类的函数,例如sin,cos之类的,也许这些在刚开始学习时并没有什么用,但是它其中还有其他的函数可以简便我们的算法。(好正式,笑)
悲,运算的时候用弄错了,把数组改成double类型但是输出的时候还没改,一直报错,还有把sqrt函数记成了sprt,也是一直报错,难绷。引以为戒。
PS:刚刚写了一下,发现好像都是要写成double类型的。
一.三角类
三角类的函数十分常见,在初高中学习是我们已经接触过了。
1.sin() 2.cos() 3. tan()
4. asin() 5.acos() 6.atan()
7.sinh() 8.cosh() 9. tanh()
运行程序:
运行结果:
啊?这时候就有问题出现了,为什么会有nan(男)呢,是因为太难了算不了吗?这里就和函数本身的性质有关系了,我们可以看到是asin()和acos()位置报错了,究其原因是这两个函数()中只能包含(-1,1)的数字,而我在前面定义了#define N 10 很明显就超出了范围,所以自然会出问题。那为什么不是报错呢?其实,这里nan的意思不是男或者难,而是 not a number,不是一个数,表示结果未定义。(问文心一言的,其实我也不知道,哈哈哈哈哈哈哈)
OK,我们接下来到指数部分。
二.指数对数类
指数在之前的学习中我们也有所接触哦,因此不再赘述,直接上代码。
不对,还是要说的,我的笔记中目前只有三个(纠正6种)有关指数的函数,分别是
指数类: 1.以e为底的指数函数exp()
2.求幂函数pow( ,)
对数类:1.求自然对数函数log()(所以不要傻傻地写log(int,int)了,哭)
2.log10()
3.log2();
哎,那如果其他对数怎么弄,我去找找。ok,joker了,不止三种,马上改。就目前来说,这些函数都最好用double类型的(指数函数除外)
OK,开始写代码:
运行结果:
还没写完,休息一下,马上回来,看到这了,你也休息一下吧。
三.其他
不想写了,明天再更吧。(乐)
OK,回来了,前面两类是数学的基本运算。而其他类的函数则可以大大减少我们的代码量。
1.绝对值函数fabs( )
代码:
运行结果:
2.平方根函数sqrt( )
代码:
运行结果:
这里我们可以发现,m的平方根出现了乱码,原因是平方根中只能为正数,而m为-10,所以会出现报错
3.舍入和取整函数
1)ceil(double x)
:向上取整
代码:
运行结果:
2)loor(double x)
:向下取整
代码:
运行结果:
ps:从这里开始n和m数值改变
3)round(double x)
:四舍五入取整
代码:
运行结果:
4)trunc(double x)
:向零取整
代码:
运行结果:
4.求余数函数fmod( double a,double b)
结果是a/b的余数
代码:
运行结果:
5.分解浮点数函数modf( x,&P(有效的地址))
该函数返回值是x的小数部分,而函数的整数部分则存储于*p中。
啊!我真是服了,这个函数运用好麻烦。
为什么是modf ,我本来写的是mod,但是devc++说让我最好用modf,所以就用了哈哈哈哈哈哈,我也不知道为什么。。。。刚问了文心一言,原来是没有mod这个函数,可能又是我抄错了。。。
前面是要求的数字,后面是地址
代码:(无指针)
运行结果:
(不行,我得试试指针,之前都失败了)
(指针版)
啧,指针输出的是空白,为什么bzd
噢噢,搞懂了,后面要用的是一个有效的地址,所以不能直接用指针,因为指针没有固定的地址嘛。学会啦!
目前就更新到这里,如果还有需求的话,可以在评论区留言,我会在进行更新和操作。
感谢阅读