error C2668: “sqrt”: 对重载函数的调用不明确这些出现在使用vs 2008 2010时候碰到调用sqrt 之类的数学模型函数

我在vs2008上测试的 :例子是求100到200内的素质

#include
#include
using namespace std;

int main()
{
	int i;
	bool flag=1;
	for(i=101;i<=200;i++)
	{
		int k=sqrt(i);
		for (long j=2;j
会出现

1>d:\vs 2008 project\mytest素数\mytest素数\test.cpp(11) : 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)”

这个时候怎么解决呢  就是把int k=sqrt(i);改成int k=(int)sqrt((float)i);就可以,读者们自己可以去调试;

你可能感兴趣的:(c/c++学习笔记)