编译无法通过?
题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
我写的程序:
#include<stdio.h>
#include<math.h>
int main(void)
{
long int i,x,y;
for(i=1;i<=100000;i++)
{
x=sqrt(i+100);
y=sqrt(i+268);
if(x*x==i+100&&y*y==i+268)
printf("%ld\n",i);
}
return 0;
}
下面提示的错误是:
1>------ 已启动生成: 项目: 03, 配置: Debug Win32 ------
1>正在编译...
1>03.cpp
1>c:\users\zhupenggang\desktop\我写的程序\03.cpp(8) : error C2668: “sqrt”: 对重载函数的调用不明确
1> d:\program files\microsoft visual studio 9.0\vc\include\math.h(581): 可能是“long double sqrt(long double)”
1> d:\program files\microsoft visual studio 9.0\vc\include\math.h(533): 或 “float sqrt(float)”
1> d:\program files\microsoft visual studio 9.0\vc\include\math.h(128): 或 “double sqrt(double)”
1> 试图匹配参数列表“(long)”时
1>c:\users\zhupenggang\desktop\我写的程序\03.cpp(9) : error C2668: “sqrt”: 对重载函数的调用不明确
1> d:\program files\microsoft visual studio 9.0\vc\include\math.h(581): 可能是“long double sqrt(long double)”
1> d:\program files\microsoft visual studio 9.0\vc\include\math.h(533): 或 “float sqrt(float)”
1> d:\program files\microsoft visual studio 9.0\vc\include\math.h(128): 或 “double sqrt(double)”
1> 试图匹配参数列表“(long)”时
1>生成日志保存在“file://c:\Users\ZHUPENGGANG\Documents\Visual Studio 2008\Projects\03\03\Debug\BuildLog.htm”
1>03 - 2 个错误,0 个警告
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========
请问如何解决?