sqrt对重载函数的调用不明确(我编的一个判断质数的c语言程序,结果出现这样的错误: “sqrt”: 对重载函数的调用不明确谢谢啦!)

本文目录
- 我编的一个判断质数的c语言程序,结果出现这样的错误: “sqrt”: 对重载函数的调用不明确谢谢啦!
- sqrt对重载函数的调用不明确
- 求大神解答为什么老说我的“sqrt”: 对重载函数的调用不明确
- error C2668: “sqrt”: 对重载函数的调用不明确
- C++入门,编译时说sqrt对重载函数调用不明确为什么
- for(i = 2,j = int(sqrt(x));i <= j;i++) { if(x % i == 0) { break; } }“sqrt”: 对重载函数的调用不明
- c里面为什么添加了math却不能用sqrt函数,提示:对重载函数的调用不明确
- c语言,对重载函数的调用不明确是什么意思,怎么解决、
- error C2668: “sqrt“: 对重载函数的调用不明确
我编的一个判断质数的c语言程序,结果出现这样的错误: “sqrt”: 对重载函数的调用不明确谢谢啦!
m=sqrt(i);
sqrt是float 或者double型的,
如果用于int型,
要这样:m=sqrt((float)i);
sqrt对重载函数的调用不明确
这个你需要强制类型转化,因为sqrt只支持double和float类型,你可以这样
c=(int) sqrt((double)a*a+b*b);
或者c=(int) sqrt((float)a*a+b*b);
求大神解答为什么老说我的“sqrt”: 对重载函数的调用不明确
_Check_return_ _CRT_JIT_INTRINSIC double __cdecl sqrt(_In_ double _X);
首先重载:一个是函数个数不一致,一个是函数类型不一致;
你上面的传入的是一个int 类型,原本内部的是一个double类型。
error C2668: “sqrt”: 对重载函数的调用不明确
重载函数二义性,不知道用哪个转换将int转换之后更好,这三个函数都是标准转换,所以一样好。你可以用转换把int类型参数static_cast《T》(x),T可以是float就行,因为它应该足够表示int了。很多VC6下可以运行的程序,到了VC2008下,都不会直接通过,因为VC2008更标准了,VC6应该说有点老了。
C++入门,编译时说sqrt对重载函数调用不明确为什么
VC++2010对sqrt函数有两个重载;float sqrt(float)和double sqrt(double);
在您的程序中传入的参数为int,那么在执行这个函数时编译器会产生迷惑,是将它转换为float后调用float sqrt()呢?还是将它转换为double后再调用double sqrt呢?也就是产生了二义性。
你可以在执行sqrt时强制指定为一种类型即可:sqrt((float)k)或是sqrt((double)k);
希望对你有所帮助
for(i = 2,j = int(sqrt(x));i <= j;i++) { if(x % i == 0) { break; } }“sqrt”: 对重载函数的调用不明
对x进行显式类型转换就好sqrt((double)x)
这是因为这个程序是按照C++的方式进行编译的,所以需要指明参数类型。
如果是纯C的方式,那么是不存在重载的问题的。看看你的程序是.c的后缀还是.cpp的后缀。
也可以显式指明按照C的方式编译
c里面为什么添加了math却不能用sqrt函数,提示:对重载函数的调用不明确
int m =sqrt((double)i);
C语言是没有重载的,C++才有,你应该是用C++的编译器来写C语言吧
在C++中sqrt有两个重载函数,一个参数是double,另一个是float
由于你传的参数是int在默认的隐式类型转换中int可以转换成float也可以转换为double,编译器就不知道你想调用哪一个。用强制的类型转换可以解决这个问题。
c语言,对重载函数的调用不明确是什么意思,怎么解决、
重载函数一般区别于参数类型,参数个数;
图片看不清无法判断,但是基本上这个错误就是你所的重载函数的参数类型不确定。
编译器无法通过参数类型判断你调用的是具体哪个函数;
比如对于重载函数
A(double aa,double bb);
A(float aa,float bb);
A(char aa,char bb);
//调用为
int int i,j;
A(i,j);//此时重载函数中没有int型参数的重载,就会报错调用不明确
//正确用法
A(double(i),double(j));//做强制转换,明确调用的函数
补充,看了你其他的提问,图片看到了,错误是switch()这个函数参数类型是整型int,你用了浮点
型以及sqrt()函数没有整形的参数,你需要将整型强制转换为浮点型
error C2668: “sqrt“: 对重载函数的调用不明确
改成这样 k=int(sqrt((float)m)); 或者 k=int(sqrt((double)m)); vc2008更严格

本文相关文章:
excel怎么用vlookup函数(如何在Excel中使用VLOOKUP函数)
2026年8月29日 11:50
random函数matlab(如何用matlab生成随机数函数)
2026年9月18日 01:40
bool函数默认返回值(c语言 如果要定义函数的返回类型为布尔类型,怎么定义)
2026年9月17日 17:20
counta函数用法(excel中的counta函数怎么用)
2026年9月13日 13:10
matlab meshgrid用法(MATLAB中mesh函数的用法是怎样的)
2026年8月27日 10:20
hlookup怎么填函数参数(Vlookup/Hlookup函数4种使用方法总结)
2026年8月15日 16:50
intercept是什么函数(在Excel中INTERCEPT函数的作用)
2026年8月4日 10:50
更多文章:
cocos creator中文(cocoscreator和cocoscreator3d的区别)
2026年9月22日 02:30
方舟生存进化新物种图鉴中英文对照图鉴 庞马资料图鉴 庞马(Equus magnus)?植物大战僵尸英文版图鉴
2026年9月22日 00:10
html document对象(载入浏览器的html文档都会成为document的对象吗)
2026年9月21日 16:00
安装包怎样下载mysql(如何在官网上下载可安装版的MySQL数据库)
2026年9月21日 15:30
威廉尖叫音效在线(渴求《勇敢的心》的配乐a gift of a thistle下载)
2026年9月21日 15:20


