2016-02-11 6 views
0

У меня есть вопрос проверки среднего класса C#, который становится лучшим из меня. Возникает вопрос: «Использовать метод и одним нажатием кнопки вызвать метод для сортировки через 2-мерный массив (объявлен глобально) и вернуть среднее значение первой диагонали, используя цикл SINGLE for».среднее значение только диагоналей 2 мерной матрицы C#

Мой 2 одномерный массив выглядит следующим образом

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
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); 
    } 
+0

спасибо, что сработало красиво. – sherlok