简介
在计算平均值时, 如果累加项过多, 可能会出现累加溢出的情况, 此时需要寻找其他方法。
解决方案
计算含有1000000个元素的double数组的平均值:
主要代码为:
average = average * i/(i+1) + array[i]/(i+1);
示例:
double array[1000000] = {2000.0,30000.1,...}
double average = 0;
for (int i = 0; i < sizeof(array); ++i){
average = (double)i/(double)(i+1) * average + array[i]/(i+1);
}
平均值为 average