C++ 当';重载函数的多个实例;sqrt";匹配参数列表';?

C++ 当';重载函数的多个实例;sqrt";匹配参数列表';?,c++,overloading,sqrt,C++,Overloading,Sqrt,我在for循环中的代码出现错误,for(j=3;j您需要编写一个合理的sqrt函数。这可能是最简单的方法。另外,不要每次在循环中调用sqrt函数。只需调用一次即可。尝试: for (j = 3; j <= std::sqrt(static_cast<float>(num)); j +=2) for(j=3;j在第二个函数之后,代码中遗漏了一个角括号 您是否使用-lm标记编译它 另外,您需要将j类型转换为int。什么是sqrt()函数?是否重载了它?编译器向您显示了哪些候选项?

我在for循环中的代码出现错误,
for(j=3;j您需要编写一个合理的
sqrt
函数。这可能是最简单的方法。另外,不要每次在循环中调用
sqrt
函数。只需调用一次即可。

尝试:

for (j = 3; j <= std::sqrt(static_cast<float>(num)); j +=2)

for(j=3;j在第二个函数之后,代码中遗漏了一个角括号
您是否使用-lm标记编译它


另外,您需要将j类型转换为int。

什么是
sqrt()
函数?是否重载了它?编译器向您显示了哪些候选项?
int j,num=0;{if>(num@chris:的确如此。一旦修复了这个问题,下面的循环对于除2之外的任何数字都将返回false。@迈克·西摩,很好的回答。这个循环将在以后省去一点头痛。显然已经有多个
sqrt
函数可用。为什么这个人需要编写另一个呢?没有一个循环完全符合他的要求。他可能会阻塞这个函数。)我想是方洞里的圆钉。但是我们说的是五六行代码来做正确的事情。@DavidSchwartz:他们都做他想要的事情;他们只是没有为他所拥有的确切类型而超载。他可以写五六行代码,加上几十行代码来测试它,我想,希望他把这些都做对了。但我们说的是只需对库函数进行一次调用就可以正确执行。浮点平方根函数完全可以实现其所需功能。此外,它应该是
std::sqrt
,并且可能是
static\u cast(num)
。在发布的代码OP中曾经有一个“using namespace std”。我将接受static\u cast备注:D
for (j = 3; j <= std::sqrt(static_cast<float>(num)); j +=2)