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跟踪数组中元素的总数.
我的运动用品告诉我这是错的.我究竟做错了什么?
这个
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的代码.