仅2个维数阵列的对角线的平均值C#

时间:2016-02-11 17:24:02

标签: c# arrays multidimensional-array diagonal

我有一个C#中期评论问题,这是我的最佳选择。问题是:“使用方法,并在单击按钮时,调用方法对2维数组进行排序(全局声明)并使用SINGLE for循环返回第一个对角线的平均值。”

我的二维数组看起来像这样

int[,] A = new int[,] { { -16, 19, 8, -3 }, {-17, -5, 9, 33 }, {-2, 15, -13, 29 }, {25, 39, -23, 8 } };

到目前为止我的代码看起来像这样:

private void btnAverageQVI_Click(object sender, EventArgs e) { arrayAverage(A);
}

    `public static void arrayAverage(int[,] array)
    {
        int total = 0;
        int count = 0;

        int rows = array.GetLength(0);
        int cols = array.GetLength(1);

        for (rows = 0; rows < array.Length; rows++)
        {
            total = array[0, 0] + 1;
            count++;
        }
        double average = total / 4;
        MessageBox.Show("Total: " + average);
    }`

有人请帮助,我觉得这很容易,但我错过了一些东西。

1 个答案:

答案 0 :(得分:1)

public static void arrayAverage(int[,] array)
    {
        int total = 0;
        //Get number of rows 
        int rows = Math.Min(array.GetLength(0),array.GetLength(1));

        //Iterate through diagonal elements
        for (int i= 0; i < rows; i++)
        {
            total += array[i, i];
        }
        //Multiple 1.0 to prevent data lost.
        double average = 1.0*total / rows;
        Console.WriteLine("Total: " + average);
    }