c++中的问题“sqrt”: 对重载函数的调用不明确

c++中的问题“sqrt”: 对重载函数的调用不明确
报错:
可能是“long double sqrt(long double)”
或 “float sqrt(float)”
或 “double sqrt(double)”

#include
#include
using namespace std;
bool isTriangular( int n )
{double k;
k= sqrt((n*8+1));
isTriangular((k-1)/2==int(k-1)/2);
}
int main()
{
int xiaxian;int shangxian;
cin>>xiaxian>>shangxian;
if(xiaxian>shangxian)
{int x;
x =xiaxian;
xiaxian=shangxian;
shangxian=x;}
int n;
for(int n = max(0,xiaxian);n<=shangxian+0.1;++n)
if(isTriangular(n))
cout<return 0;
}
你调用了库函数sqrt,那么就得按照库函数使裂漏用。已经给了提示了。没有sqlrt(int)的函数。你要先把肆高烂n*8+1的结果转成double型。比如sqrt((double)n*8+1; 又比念拆如double tmp=(double)n*8+1;sqrt(tmp)
← 上一篇: 下一篇: →