变量未被分配

时间:2017-10-21 16:35:14

标签: c++

我遇到了一个小问题,我正在尝试快速计算。

MF = 1 / N * X

所以我写了一个应该这样做的小程序。 我使用全局变量:

float mf = NULL;
float xCalce = NULL;
int n = NULL;
vector<float> x = {-10.2, -8.0, 0.5, 5.9, 3.5, 22.7, 15.0, -1.8, -3.1, 7.7, 11.2, 7.9, -3.3,
                   -1.6, 15.3, 22.6, 3.6, 5.7, 2.0, -18.2, -27.5, 23.1, 18.1, 9.7, 25.8};

我从数字向量计算x,并使用forwhile循环

计算
for (float xs : x) {
        sumX(xs);
    };

将其发送到此功能:

void sumX(float &x) 
{
    xCalce += x;
}

有效。

我想为mf做同样的事,但我想念一些东西,因为它没有保存到全局变量mf;

 void calcMf(float x, int n) {
   mf =(1/n)*(x);
}

当我调用调试器时,n和x是正确的,但正如我之前所说的那样,值没有保存在mf中?

Edit1:添加了矢量,文本中描述了其他所有内容 Edit2:添加了主要功能

int main() {


    n = x.size();
    //

    for (float xs : x) {
        sumX(xs);
    };
    calcMf(xCalce,n);


    cout << "summ of x : " << xCalce << endl;
    cout << "mf: " << mf << endl;
    cout << n << endl;
}

1 个答案:

答案 0 :(得分:1)

将n更改为float,并将mf = null设置为0;