杭电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;
} 展开
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;
} 展开
1个回答
展开全部
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;
}
#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;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询