为什么VS2010中的sqrt函数调用不出来?请问VS2010中的sqrt函数怎么用呢????
我编写程序时假如用到sqrt函数时就会出错,就出现下面这种情况.为什么呢?6)\筛选\筛选\100.cpp(11):errorC2668:“sqrt”:对重载函数的调用不...
我编写程序时假如用到sqrt函数时就会出错,就出现下面这种情况.为什么呢?
6)\筛选\筛选\100.cpp(11): error C2668: “sqrt”: 对重载函数的调用不明确
1> d:\vs2010\vc\include\math.h(589): 可能是“long double sqrt(long double)”
1> d:\vs2010\vc\include\math.h(541): 或 “float sqrt(float)”
1> d:\vs2010\vc\include\math.h(127): 或 “double sqrt(double)”
1> 尝试匹配参数列表“(int)”时
#include<math.h>
#include<stdio.h>
void main()
{
int m,k,i,n=0;
for(m=101;m<=200;m=m+2)
{k=sqrt(m);
for(i=2;i<=k;i++)
if(m%i==0) break;
if(i>=k+1)
{printf("%d",m);
n=n+1;}
if(n%10==0)
printf("\n");
}
printf("\n");
} 这里面那个sqrt函数该怎么改??? 展开
6)\筛选\筛选\100.cpp(11): error C2668: “sqrt”: 对重载函数的调用不明确
1> d:\vs2010\vc\include\math.h(589): 可能是“long double sqrt(long double)”
1> d:\vs2010\vc\include\math.h(541): 或 “float sqrt(float)”
1> d:\vs2010\vc\include\math.h(127): 或 “double sqrt(double)”
1> 尝试匹配参数列表“(int)”时
#include<math.h>
#include<stdio.h>
void main()
{
int m,k,i,n=0;
for(m=101;m<=200;m=m+2)
{k=sqrt(m);
for(i=2;i<=k;i++)
if(m%i==0) break;
if(i>=k+1)
{printf("%d",m);
n=n+1;}
if(n%10==0)
printf("\n");
}
printf("\n");
} 这里面那个sqrt函数该怎么改??? 展开
展开全部
类型转换一下就好了,sqrt的参数不能是整形,你可以使用强制类型转换,或者*1.0这样的运算来转换参数的类型。
追问
#include
#include
void main()
{
int m,k,i,n=0;
for(m=101;m=k+1)
{printf("%d",m);
n=n+1;}
if(n%10==0)
printf("\n");
}
printf("\n");
}
那么这里面那个sqrt函数应该怎么改???
追答
试试看把:
k=sqrt(m);
修改为:
k=sqrt(1.0*m);
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询