永发信息网

为什么不包含cmath也可以运行sqrt和pow?

答案:2  悬赏:50  手机版
解决时间 2021-12-25 03:22
  • 提问者网友:箛茗
  • 2021-12-24 16:28
本人新手,望指教。
我连namespace都删除了,照样能够运行sqrt和pow。

而且我如果在开头添加#include 的话我查看下面的function照样用的是math.h。我用的IDE是visual c++ 2010.

另外pow在math.h的定义里面没有int在前的,比如pow(int, double),or pow(int float),在前的只有double或者float或者long double,但是我在实际练习过程中前面是integer照样可以运行,只需要保证两个参数中有一个是double就可以了,这是为什么。如果两个都是int就会报错。是不是是IDE的问题。
最佳答案
  • 五星知识达人网友:鸽屿
  • 2021-12-24 16:52
1.iostream头文件已经(拐了几道弯地)包含了cmath,因此不用再包含一遍,cmath头文件其实主要就是包含了math.h(当然也有一些其他内容)

2.pow函数的第一个参数是int型的话会自动转换为浮点数型(float,double,或是long double。具体转换成哪个看第二个参数,编译器自动选择需要转换次数较少的pow函数),但如果第二个参数也是int型,就无法决定转换为哪一种浮点数型,此时可以通过显式类型转换,选择使用哪个函数
全部回答
  • 1楼网友:野慌
  • 2021-12-24 17:14
搜一下:为什么不包含cmath也可以运行sqrt和pow?
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯