duck_kk 2023-04-22 21:08 采纳率: 50%
浏览 13

c++物理实验中不确定度的计算

##数据计算出现了-nan(ind)
#希望通过代码实现物理实验中不确定度的计算
#但输入要用字符串形式,以下是我的代码

#include <iostream>
using namespace std;
#include<string>
int main()
{
    string a, part[50];
    double n[50], ping,sum=0;
    int num = 0;//数据个数
    double bei, biao, bu, t;
    cin >> a; 

    for (int i = 0; i <= a.length(); i++) {//字符串分成小字符串
        int n = 0, x = 0;
        if (a[i] == ' ') {
            x = 0;
            n++;
            num++;
        }
        else {
            part[n][x] = a[i];
        }
    }

    for (int i = 0; i<num; i++) {//字符串转为double存在数组中
        n[i] = stod(part[i]);
    }
    for (int i = 0; i < num; i++) {//计算算术平均值
        sum += n[i];
        ping = sum / num;
    }
    double s = 0;
    for (int i = 0; i < num; ++i) {//根据贝塞尔公式
        s += (n[i]-ping)*(n[i]-ping) / (num - 1);
    }
    bei = sqrt(s);
    biao = bei / ((double)sqrt(num));//标准偏差
    switch (num - 1) {//判断t值
    case 1:
        t = 1.84;
        break;
    case 2:
        t = 1.32;
        break;
    case 3:
        t = 1.20;
        break;
    case 4:
        t = 1.14;
        break;
    case 5:
        t = 1.11;
        break;
    case 6:
        t = 1.09;
        break;
    case 7:
        t = 1.08;
        break;
    case 8:
        t = 1.07;
        break;
    case 10:
        t = 1.05;
        break;
    case 15:
        t = 1.04;
        break;
    case 20:
        t = 1.03;
        break;
    case 30:
        t = 1.02;
        break;
    case 40:
        t = 1.01;
        break;
    default:
        t = 1.00;
        break;
    }
    bu = t * biao;//不确定度
    cout<< bei << ' ' << biao << ' ' << bu;
}

#期望输出结果:几个小数,无精确度要求,原始格式即可

#实际输出结果:0 -nan(ind) -nan(ind)

##另外代码中的最后一行的cout报出了“‘cout’不明确”的错误

  • 写回答

2条回答 默认 最新

  • 秉灯 2023-04-22 21:45
    关注

    我看到一个问题了,第一个for循环,每一次循环,程序都会定义一个初始值为0的n后面遇到即使if语句中实现了n++,但是后面的循环又会定义一个初始值为0的变量n。而上一次循环的变量n已经被释放了。这样子的for循环是不正确的,最后得到的字符串数组part也是没有达到预期效果

    评论

报告相同问题?

问题事件

  • 创建了问题 4月22日

悬赏问题

  • ¥15 C++ 句柄后台鼠标拖动如何实现
  • ¥15 有人会SIRIUS 5.8.0这个软件吗
  • ¥30 comsol仿真等离激元
  • ¥15 静电纺丝煅烧后如何得到柔性纤维
  • ¥15 (标签-react native|关键词-镜像源)
  • ¥100 照片生成3D人脸视频
  • ¥15 伪装视频时长问题修改MP4的时长问题,
  • ¥15 JETSON NANO
  • ¥15 VS开发qt时如何在paintgl函数中用pushbutton控制切换纹理
  • ¥20 关于 openpyxl 处理excel文件地问题