Квадратная матрица: среднеарифметическое максимального и минимального элементов - C#
Формулировка задачи:
Дана действительная квадратная матрица А порядка N, все элементы которой различные. Подсчитать, сколько элементов матрицы равны среднеарифметическому значению из максимального и минимального элементов матрицы.
нахожу среднеквадратичное, далее перебор на сравнение.
Помогите пожалуйста поправить код:
double GetQuadratiс(double[][] a) { int n = a.lengh(); double max = a[0][0], min = a[0][0]; for(int i = 0; i < n; i++) { for(int j = 0; j < n; j++) { if(min > a[i][j]) min = a[i][j]; if(max < a[i][j]) max = a[i][j]; } } return (min*min + max*max)/2; } int MyCountFunction(double[][] a) { int quadratic = GetQuadratiс(a), n = a.lengh(), count = 0; for(int i = 0; i < n; i++) for(j = 0; j < n; j++) if(a[i][j] == quadratic) count++; return count; }
Решение задачи: «Квадратная матрица: среднеарифметическое максимального и минимального элементов»
textual
Листинг программы
using System; namespace ConsoleApplication { class Program { static double[,] GetRandomMatrix(int rows, int columns) { if (rows < 0 || columns < 0) throw new ArgumentException("Неверный размер"); var rnd = new Random(); double[,] matrix = new double[rows, columns]; for (int row = 0; row < rows; row++) for (int col = 0; col < columns; col++) matrix[row, col] = rnd.Next(0, 50); return matrix; } static double GetMaxMatrixElement(double[,] matrix) { double max = Double.NegativeInfinity; for (int row = 0; row < matrix.GetLength(0); row++) for (int col = 0; col < matrix.GetLength(1); col++) if (matrix[row, col] > max) max = matrix[row, col]; return max; } static double GetMinMatrixElement(double[,] matrix) { double min = Double.PositiveInfinity; for (int row = 0; row < matrix.GetLength(0); row++) for (int col = 0; col < matrix.GetLength(1); col++) if (matrix[row, col] < min) min = matrix[row, col]; return min; } static void Main(string[] args) { double[,] matrix = GetRandomMatrix(10, 10); double average = (GetMinMatrixElement(matrix) + GetMaxMatrixElement(matrix)) / 2d; double count = 0; // здесь ваш результат for (int row = 0; row < matrix.GetLength(0); row++) for (int col = 0; col < matrix.GetLength(1); col++) if (matrix[row, col] == average) count++; } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д