微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

新手问题:为什么最终结果会改变?

如何解决新手问题:为什么最终结果会改变?

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

Run on VSC

Run on Onlinegdb

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

感谢您的阅读,感谢您的帮助。

解决方法

您在使用变量 's' 之前没有对其进行初始化。

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。