Квадратная матрица: среднеарифметическое максимального и минимального элементов - 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++;
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.75 из 5
Похожие ответы