C++查找数组中数字的平均值

for*_*win 2 c++ arrays average

for( k = 0; k < n; k++ )
{
   total += total + temps[k];
}

avgTemp = total / n;
Run Code Online (Sandbox Code Playgroud)

temps是我的数组,包含n元素.avgTemp存储所有值的平均值temps.k只是一些整数使我的循环工作.k,n和total已经在上面适当地声明了.total跟踪数组中元素的总数.

我的运动用品告诉我这是错的.我究竟做错了什么?

Vik*_*pov 7

这个

for( k = 0; k < n; k++ )
{
    /// here's the error.
    /// You assign the new value to total as (total = total + total + temps[k])
    total += total + temps[k];
}

avgTemp = total / n;
Run Code Online (Sandbox Code Playgroud)

应该

for( k = 0; k < n; k++ ) { total += temps[k]; }

avgTemp = total / n;
Run Code Online (Sandbox Code Playgroud)

要么

for( k = 0; k < n; k++ ) { total = total + temps[k]; }

avgTemp = total / n;
Run Code Online (Sandbox Code Playgroud)

使用迭代求和会更好.它允许避免舍入错误.

avgTemp = temps[0];

for(k = 1 ; k < n ; k++) { total = (temps[k] + (double)(k-1) * total)/ (double)k; }
Run Code Online (Sandbox Code Playgroud)

bames53还在评论中提供了一个很好的基于STL的代码.