新手提问:为什么最终结果会发生变化

  • 本文关键字:结果 变化 新手 c++ cout
  • 更新时间 :
  • 英文 :


我对C++几乎完全陌生,我正试图编写一些基于公式的圆周率近似值的东西。公式并不重要,但当我尝试运行代码时,它会无缘无故地得到不同的结果(?(这是我的代码

#include <iostream>
#include<cmath>
using namespace std;
double pie (int N){
double s;
double x;
for (int i=1; i<=N; i++){
s = s + 1/(1+pow((i-0.5)/N,2));
}
x = s*4/N;
return x;
}
int main() {
int Nmin = 1;
while(pie(Nmin) > 3.15){
Nmin++;
cout<<Nmin<<endl;
}
cout<<pie(Nmin)<<" "<< pie(Nmin)<<" "<< pie(Nmin)<<endl;
cout<<pie(Nmin)<<" <-- correct one"<<endl;
}

在VSC 上运行

在Onlinegdb 上运行

如图所示,运行代码后的结果各不相同。我就是搞不清是什么原因造成的。

感谢您的阅读,如有帮助,不胜感激。

在使用变量之前,您没有初始化它。

请将变量初始化为double s = 0;

最新更新