我有一个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);
}`
有人请帮助,我觉得这很容易,但我错过了一些东西。
答案 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);
}