sqrt对重载函数的调用不明确

LONGa;LONGb;intc;c=(int)sqrt(a*a+b*b);errorC2668:“sqrt”:对重载函数的调用不明确可能是“longdoublesqrt... LONG a;
LONG b;
int c;
c=(int) sqrt(a*a+b*b);
error C2668: “sqrt”: 对重载函数的调用不明确
可能是“long double sqrt(long double)”
或 “float sqrt(float)”
或 “double sqrt(double)”
什么原因呢?
展开
 我来答
wubinabcde
2011-12-29 · TA获得超过259个赞
知道小有建树答主
回答量:151
采纳率:0%
帮助的人:145万
展开全部
这个你需要强制类型转化,因为sqrt只支持double和float类型,你可以这样
c=(int) sqrt((double)a*a+b*b);
或者c=(int) sqrt((float)a*a+b*b);
imstyle1001
2011-12-29
知道答主
回答量:13
采纳率:0%
帮助的人:7.7万
展开全部
参数和返回值的类型保持一致,(他爸他妈都姓王,你为什么让他儿子姓李?)你如果想强制转换就等函数返回以后;编译器也没想象的那么智能,知道你想多省几行字
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
黯湮灬逍遥
推荐于2017-11-24 · TA获得超过339个赞
知道小有建树答主
回答量:378
采纳率:0%
帮助的人:315万
展开全部
把代码这么改:
c=(int) sqrt((double)a*a + (double)b*b);
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式