如何查找2D数组中列值的平均值?
问题描述:
我想打印一个二维数组的每列的值的平均值。我已经想出了如何找到连续的平均值,但我仍然努力做到这一点。如何查找2D数组中列值的平均值?
这是我到目前为止有:
for (i=0; i<nRow; ++i)
{
for(j=0; j<nCol+1; ++j)
{
if (j == nCol)
{
nAve = (float)nSum/nCol;
printf("=%.1f", nAve);
}
else
{
printf("%d\t", aArray[i][j]);
nSum += aArray[i][j];
}
}
nSum = 0;
printf("\n");
}
答
我认为是比较容易做另一个用于数列的平均水平。 像:
for (j=0; j<nCol+1; ++j)
{
for(i=0; i<nRow+1; ++i)
{
}
}
如果你想和一个做到这一点的,你应该创建一个数组,以保持和增加总的所有列。
float sumColumn[nCol];
for (i=0; i<nRow; ++i)
{
for(j=0; j<nCol+1; ++j)
{
if (j == nCol)
{
nAve = (float)nSum/nCol;
printf("=%.1f", nAve);
}
else
{
printf("%d\t", aArray[i][j]);
nSum += aArray[i][j];
sumColumn[j] += aArray[i][j];
}
}
nSum = 0;
printf("\n");
}
在sumColumn数组中,您将得到所有列的总和。
交换for循环而不更改内部代码 – Nadir
您期望什么?我认为你的代码是正确的。 –
也许第一次nSum初始化?尽管如此,我会避免在第二个for循环中执行+1。这是一个坏习惯imo – baptiste