error C2668: "sqrt": 对重载函数的调用不明确

/*【程序3】
题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
1.程序分析:在1000以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足如下条件,即是结果。*/
#include "stdio.h"
#include "math.h"
#include "stdlib.h"
int main()
{
long int i, x, y;
for (i = 1; i < 1000; i++)
{
x = sqrt(i + 100);
y = sqrt(i + 268);
if (x*x == i + 100 && y*y == i + 268);
printf("\n%ld\n", i);
}
system("pause");
}

改成这样 k=int(sqrt((float)m)); 或者 k=int(sqrt((double)m)); vc2008更严格
温馨提示:内容为网友见解,仅供参考
无其他回答

error C2668: "sqrt": 对重载函数的调用不明确
改成这样 k=int(sqrt((float)m)); 或者 k=int(sqrt((double)m)); vc2008更严格

error C2668: "sqrt": 对重载函数的调用不明确 2 IntelliSense: 有多...
b = int(sqrt(float(i)));或者 b = int(sqrt(double(i)));

error C2668: "sqrt": 对重载函数的调用不明确 2 IntelliSense: 有多...
b = int(sqrt(float(i)));或者 b = int(sqrt(double(i)));

error C2668: “sqrt”: 对重载函数的调用不明确
这是因为pixel是整型吧,需要将参数强制装换成(double),结果自然是double了。result = sqrt((double)( pixel[0] - pixel[3] )*( pixel[0] - pixel[3] ) + ( pixel[1] - pixel[2] )*( pixel[1] - pixel[2] ));

编译时说sqrt对重载函数调用不明确,为什么?
假如原先是这样的:if (sqrt((x0-tx)*(x0-tx)+(y0-ty)*(y0-ty))<r0) \/\/其中参数都是int。运行程序时出现下述错误:error C2668: “sqrt”: 对重载函数的调用不明确。1> d:\\vs2010\\vc\\include\\math.h(581): 可能是“long double sqrt(long double)”1> d:\\vs2010\\vc\\inclu...

error C2668: “sqrt”: 对重载函数的调用不明确 怎么回事?
重载函数二义性,不知道用哪个转换将int转换之后更好,这三个函数都是标准转换,所以一样好。你可以用转换把int类型参数static_cast<T>(x),T可以是float就行,因为它应该足够表示int了。很多VC6下可以运行的程序,到了VC2008下,都不会直接通过,因为VC2008更标准了,VC6应该说有点老了。

VS2010 error C2668: “log”: 对重载函数的调用不明确
d:\\visual c++\\VC\\INCLUDE\\math.h(575): 可能是“long double log(long double)”d:\\visual c++\\VC\\INCLUDE\\math.h(527): 或 “float log(float)”d:\\visual c++\\VC\\INCLUDE\\math.h(120): 或 “double log(double)”都已经提示要如何修改了 ~~~...

c++“sqrt”:对重载函数的调用不明确?
c++语言中,sqrt函数的原型包括double, float, long三种类型。若n为int类型,由于可以转换为上述任意一种,编译器在调用sqrt函数时无法确定具体转换目标,从而导致了“sqrt: 对重载函数的调用不明确”的提示。解决这一问题,有以下两种方法:首先,明确声明n的类型为sqrt函数的原型类型之一,例如:double n...

error C2668: “log10”: 对重载函数的调用不明确 为什么?不是已经进 ...
控制台模式下编译无误。应该是在"stdafx.h"已经声明数学运算函数,去掉cmath声明试试。

error C2668: “sin”: 对重载函数的调用不明确! error C2668: “c...
<math.h> define pi 3.14159 int main(){ int x=10;double y,z;while(x<=180){ y=sin(x);\/\/没提示错误 z=cos(x);x+=10;printf("角度:\\t%d\\t正弦:\\t%f\\t余弦:\\t%f\\n",x,y,z);\/\/这里应该是放在循环体内部的 } return 0;} 以上代码在我的VC++6.0上可以正常运行。

相似回答