c++ - 我在计算 4 个值的方差时的错误在哪里?

标签 c++

<分区>

我得到了正确的均值输出,但没有得到正确的方差输出。示例输入为 8、10、12、14。

它应该输出均值为 11,方差为 5。但是,我得到的均值为 11,方差为 6.66667。

// Include statements
#include <iostream>
#include <cmath>
using namespace std;

// Main function
int main ()
{
  // Input values
  float n1, n2, n3, n4;
  cout << "Enter four numbers:\n";
  cin >> n1 >> n2 >> n3 >> n4;

  // Calculate mean of 4 values
  float mean;
  mean = (n1+n2+n3+n4)/4;

  // Calculate variance of 4 values
  float variance;
  float var1 = ((n1-mean)*(n1-mean));
  float var2 = ((n2-mean)*(n2-mean));
  float var3 = ((n3-mean)*(n3-mean));
  float var4 = ((n4-mean)*(n4-mean));

  variance = (var1+var2+var3+var4)/3;


  // Print the output
  cout << "mean = " << mean << endl;
  cout << "variance = " << variance << endl;
  return 0;
}

最佳答案

您将 var1+var2+var3+var4 除以 3 而不是 4。

关于c++ - 我在计算 4 个值的方差时的错误在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48432618/

相关文章:

c++ - C++ 中迭代器的运算符

c++ - 套接字:测量自上一条消息以来耗时

c++ - 在 C++ 中移动字符串的指针

c++ - 无法在 Allegro 中加载字体

c++ - 递归(十进制到十六进制)C++

c++ - 在本地修改的按值传递的参数会发生什么情况?

c++ - 作为返回值的 std::bitset 数组

c++ - 为这个二进制节点类创建析构函数的正确方法是什么?

c++ - 参数返回值的 V8 内存管理

c++ - 当有额外的括号时,在临时对象上调用用户定义的 operator+ 时出错