c_cpp 没有总和的计算平均值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 没有总和的计算平均值相关的知识,希望对你有一定的参考价值。

// $ g++ avg.cpp --std=c++11
#include <iostream>

// double average = 0;
// uint64_t count = 0;
// void Add(uint64_t data)
// {
//   average += (data - average) / ++count;
// }

// double GetAverage()
// {
//   return average;
// }

// double UpdateAverage(uint64_t data)
// {
//   static double average = 0;
//   static uint64_t count = 0;
//   average += (data - average) / ++count;
//   return average;
// }

class Averager
{
public:
  Averager()
    : average(0)
    , count(0)
  {}

  ~Averager() {};

  void Add(uint64_t data) { average += (data - average) / ++count; }

  double GetAverage() { return average; }

private:
  double average;
  uint64_t count;
};

int main()
{
  uint64_t data[] = { 23, 14, 75, 23, 66, 78, 11, 26 };

  // for (unsigned int i = 0 ; i < sizeof(data)/sizeof(data[0]) ; ++i ) {
  //   Add(data[i]);
  // }
  // std::cout << "avg: " << GetAverage() << std::endl;

  // double avg;
  // for (unsigned int i = 0 ; i < sizeof(data)/sizeof(data[0]) ; ++i ) {
  //   avg = UpdateAverage(data[i]);
  // }
  // std::cout << "avg: " << avg << std::endl;

  Averager averager;
  for (auto d: data) { // C++ 11 style.
    averager.Add(d);
  }
  std::cout << "avg: " << averager.GetAverage() << std::endl;
}

以上是关于c_cpp 没有总和的计算平均值的主要内容,如果未能解决你的问题,请参考以下文章

c_cpp 该C程序使用指针计算数组元素的总和。程序使用指针遍历数组并将元素加起来

c_cpp 最大总和使得没有两个元素相邻

如何计算数组中元素的总和和平均值?

win7如何用电脑计算器计算总和,平均值和总体标准偏差

Datagrid:计算页脚中列的平均值或总和

用于计算过去 24 个月及以上总和的 SQL