程序输出"nan"



我正在尝试用无穷级数计算PI。当我开始我的程序时,我得到了一些错误的nummbers,但我得到了输出"nan"。

有谁知道为什么?

代码如下:

#include <iostream>
using namespace std;
int main()
{
long double pi;
float x;
int y = 3;
bool loop = true;
while(true)
{
x=1/y;
y+2;
if(loop == true)
{
pi -= x;
loop = false;
}
else if(loop == false)
{
pi += x;
loop = true;
}
cout<<pi<<" ";
}
return 0;
}

代码的行为未定义,因为当您在添加或减去xpi 时读取其值时不会初始化pi。这解释了 NaN:一些编译器在某些方面有帮助地将未初始化的浮点变量设置为 NaN。

由于整数除法,x = 1 / y;x设置为 0。你想要1.0 / y吗?

y + 2;是无操作的。你想要y += 2吗?

请注意,您需要将序列乘以 4 才能得到pi,并且该序列收敛得特别慢,小数点后两位需要大约 300 个项。而且你的起始值y是错误的。不应该是1吗?

相关内容

  • 没有找到相关文章

最新更新