我遇到了一个小问题,我正在尝试快速计算。
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;
}
答案 0 :(得分:1)
将n更改为float,并将mf = null设置为0;