如何解决新手问题:为什么最终结果会改变?
我对 C++ 几乎完全陌生,我正在尝试编写一些基于公式找到 pi 近似值的东西。 公式并不重要,但是当我尝试运行代码时,它会无缘无故地得到不同的结果(?) 这是我的代码
#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;
}
如图所示,运行代码后的结果各不相同。我就是不知道是什么原因造成的。
感谢您的阅读,感谢您的帮助。
解决方法
您在使用变量 's' 之前没有对其进行初始化。
请将变量初始化为 double s = 0;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。