我对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;