Пусть дано натуральное число n и вещественная матрица размером n 9. Найдите среднее арифметическое элементов

Пусть дано натуральное число n и вещественная матрица размером n * 9. Найдите среднее арифметическое элементов: для каждого из столбцов. А у меня просто показывает среднее число, а нужно для каждого столбца. Что здесь нужно изменить?

static void Main(string[] args)
        {
            Random r = new Random();
            int n = (int)r.Next(1, 20);
            int m = (int)r.Next(1, 30);
            double[,] mas = new double[n, m];
            double minX, maxX, average;
            string s;
            do
            {
                Console.WriteLine("Введите n");
                s = Console.ReadLine();
            }
            while (int.TryParse(s, out n) == false || n <= 0);
            do
            {
                Console.WriteLine("Введите m");
                s = Console.ReadLine();
            }
            while (int.TryParse(s, out m) == false || m <= 0);
            mas = new double[n, m];
            for (int i = 0; i < n; i++)
            {
                for (int j = 0; j < m; j++)
                {
                    mas[i, j] = r.Next(-10, 10);
                }
            }
            minX = mas[2, 1]; maxX = mas[2, 1];

            for (int i = 0; i < n; i++)
            {
                for (int j = 0; j < m; j++)
                {
                    if (j < i)
                    {
                        if (mas[i, j] < minX)
                            minX = mas[i, j];
                        if (mas[i, j] > maxX)
                            maxX = mas[i, j];
                    }
                    Console.Write("{0,6}", mas[i, j]);
                }
                Console.WriteLine();
            }
            average = (minX + maxX) / 2;
            Console.WriteLine("Среднее: " + average);
            Console.ReadLine();
        }

Ответы (1 шт):

Автор решения: PeterP
     static void Main(string[] args)
            {
                Random r = new Random();
                int n = (int)r.Next(1, 20);
                int m = (int)r.Next(1, 30);
                double[,] mas = new double[n, m];
                double minX, maxX;
                double average = 0;
                string s;
                do
                {
                    Console.WriteLine("Введите n");
                    s = Console.ReadLine();
                }
                while (int.TryParse(s, out n) == false || n <= 0);
                do
                {
                    Console.WriteLine("Введите m");
                    s = Console.ReadLine();
                }
                while (int.TryParse(s, out m) == false || m <= 0);
                mas = new double[n, m];
                for (int i = 0; i < n; i++)
                {
                    for (int j = 0; j < m; j++)
                    {
                        mas[i, j] = r.Next(-10, 10);
                    }
                }
                minX = mas[2, 1]; maxX = mas[2, 1];
                double[] averages = new double[n];
    
                for (int i = 0; i < n; i++)
                {
                    for (int j = 0; j < m; j++)
                    {
                        if (j < i)
                        {
                            if (mas[i, j] < minX)
                                minX = mas[i, j];
                            if (mas[i, j] > maxX)
                                maxX = mas[i, j];
                        }
                        Console.Write("{0,6}", mas[i, j]);
    
                        average += mas[i,j];
//Заполняем переменную average суммой всех значений из столбца i. Столбец i будет меняется во внешнем for, фактически это номер нашего столбца.
                    }
                    averages[i] = average / m;
//В i ячейку массива вписываем сумму всех значений столбца деленную на кол-во элементов столбца. 
                    average = 0;
//Возвращаем переменной average значение 0, которое является дефолтным. Это нужно что бы не перемешивать суммы из разных столбцов.
                    Console.WriteLine();
                }
                for (int i = 0; i <averages.Length; i++)
                {
                    Console.WriteLine("Среднее: " + averages[i]);
//Через цикл выводим средние значения всех столбцов.
                }
                Console.ReadLine();
            }
→ Ссылка