杭电acm2012题目,这个错误是什么意思啊???http://acm.hdu.edu.cn/showproblem.php?pid=2012

0_0_5279051_30000.cpp0_0_5279051_30000.cpp(15):errorC2668:“sqrt”:对重载函数的调用不明确\include\... 0_0_5279051_30000.cpp
0_0_5279051_30000.cpp(15) : error C2668: “sqrt” : 对重载函数的调用不明确
\include\math.h(626): 可能是“long double sqrt(long double)”
\include\math.h(578): 或 “float sqrt(float)”
\include\math.h(200): 或 “double sqrt(double)”
试图匹配参数列表“(int)”时

我的代码
#include<stdio.h>
#include<math.h>
int main()
{
int x,y,i,j,sum,n;
while(scanf("%d%d",&x,&y)!=EOF)
{
if(x==0&&y==0)
break;
else
n=0;
for(i=x;i<=y;i++)
{
sum=i*i+i+41;
for(j=2;j<=(int)sqrt(sum);j++)
{
if(sum%j==0)
n++;
}

}
if(n>0)
printf("Sorry\n");
else
printf("OK\n");
}
return 0;
}
展开
 我来答
恶魔D风腿
2012-01-20 · 超过45用户采纳过TA的回答
知道答主
回答量:79
采纳率:0%
帮助的人:138万
展开全部
sqrt 函数的参数要浮点型
#include<stdio.h>
#include<math.h>
int main()
{
int x,y,i,j,sum,n;
while(scanf("%d%d",&x,&y)!=EOF)
{
if(x==0&&y==0)
break;
else
n=0;
for(i=x;i<=y;i++)
{
sum=i*i+i+41;
for(j=2;j<=(int)sqrt(1.0*sum);j++)//乘个1.0 让参数变成浮点型
{
if(sum%j==0)
n++;
}

}
if(n>0)
printf("Sorry\n");
else
printf("OK\n");
}
return 0;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式