代码之家  ›  专栏  ›  技术社区  ›  Denise

计算每行的平均值并存储在最后一个元素中

  •  1
  • Denise  · 技术社区  · 8 年前

    我需要计算每行的平均值并存储在最后一个元素中。我设法做到了,但后面的行是前一行的累积平均值。

    输入:

    1 2 3 0

    输出:

    1.00 2.00 3.00 2.00

    4.00 5.00 6.00 (应为5.00)

    这是我的密码

       void findAverage2D(float matrix[4][4])
         {    
           int i,j = 0;
           float sum,avg=0;
    
           for(i=0;i<4;i++)
         {
            for(j=0; j<4;j++)
            {
                sum+= matrix[i][j];
            }
            avg = sum/3;
                matrix[i][3] =avg;
    
        }
    }
    

    提前感谢。:)

    2 回复  |  直到 8 年前
        1
  •  0
  •   H.S.    8 年前

     for(i=0;i<4;i++)
     {
        float sum = 0;
    
        2
  •  0
  •   Vlad from Moscow    8 年前

    函数中有两个错误。

    第一个是变量 sum 最初未初始化,在外循环的每次迭代中也未初始化。

    考虑到这一点,函数可以如下所示

        void findAverage2D( float matrix[][4], size_t n )
        {
            const size_t M = 4;
    
            for ( size_t i = 0; i < n; i++ )
            {
                float sum = 0.0f;
                for ( size_t j = 0; j < M - 1; j++ )
                {
                    sum += matrix[i][j];
                }
                matrix[i][M-1] = sum / ( M - 1 );
            }
        }
    }