适合初学者的c ++版

时间:2016-11-10 21:29:37

标签: c++ nan sqrt

{{1}}

这输出t和y变量为nan。我不知道如何解决它。代码只是问题的一个例子,除了修复nans之外无需做任何其他事情。

2 个答案:

答案 0 :(得分:2)

t= sqrt(pow(sin(x),2)) / sqrt(x - 4);

在C ++中,负数的平方根被定义为NAN,"不是数字"。由于变量x在范围[-2, 2]内进行迭代,因此您永远不会将其设为NAN,这意味着使用它的所有计算都将达到NAN。

如果您希望sqrt返回复数,则需要使用std::complex及其各种数学函数。

答案 1 :(得分:1)

只要您继续在sqrt函数中使用负数,它就无法修复。 (提示:x - 4总是负数或零)

相关问题