C语言为什么加上了头文件sqrt还是显示出错

用visula stdio 2010环境,头文件已经包含了#include<math.h>,但是调用sqrt函数显示出错:有多个重载函数“sqrt"实例与参数列表匹配。请问大师们怎么回事
2026年09月21日 19:14
有3个网友回答
网友(1):

int m =sqrt((double)i);C语言是没有重载的,C++才有,你应该是用C++的编译器来写C语言吧在C++中sqrt有两个重载函数,一个参数是double,另一个是float由于你传的参数是int在默认的隐式类型转换中int可以转换成float也可以转换为double,编译器就不知道你想调用哪一个。

网友(2):

就是参数类型不符合,你把变量a强转成double好了。(double)a

网友(3):

包含conio.h的文件。该文件称位头文件。双引号表示从当前目录中找,如果找不到就到标准库中找。
#include
这个是从标准库中找。