Найти среднее арифметическое каждого из столбцов матрицы - C#
Формулировка задачи:
Совсем не знаю как сделать подобное задание , если знаете помогите, только не используйте сложных комбинаций кода и если не сложно оставляйте коментарии пошагово .
Задана действительная матрица размера NхМ. Найти среднее арифметическое каждого из столбцов.
Огромное спасибо.
Решение задачи: «Найти среднее арифметическое каждого из столбцов матрицы»
textual
Листинг программы
- using System;
- using System.Linq;
- namespace ConsoleApplication1
- {
- class Program
- {
- const int N = 5; //строки
- const int M = 6; //столбцы
- static Random rnd = new Random();
- static void Main(string[] args)
- {
- int[,] matrix = new int[N, M]; //Объявляем матрицу
- //Заполняем матрицу случайными значениями от -10 до 20
- for (int i = 0; i < N; i++)
- matrix.SetRow(Enumerable.Range(0, M).Select(x => x = rnd.Next(-10, 20)).ToArray(), i);
- //Печатаем матрицу в консоль
- for (int i = 0; i < N; i++)
- Console.WriteLine(string.Join("\t", matrix.GetRow(i)));
- //Находим среднее арифметическое столбцов
- var result = Enumerable.Range(0, M).Select(x => matrix.GetColumn(x).Sum() / M);
- //Печатаем среднее арифметическое под соответствующим столбцом (округление к меньшему по модулю)
- Console.WriteLine();
- Console.WriteLine(string.Join("\t", result));
- Console.ReadKey(true);
- }
- }
- //Плюшки для облегчения работы с матрицей
- public static class ArrayExtensions
- {
- public static long SetRow<T>(this T[,] array, T[] data, int i)
- {
- return Enumerable.Range(0, array.GetLength(1)).Select(j => array[i, j] = data[j]).LongCount();
- }
- public static T[] GetRow<T>(this T[,] data, int i)
- {
- return Enumerable.Range(0, data.GetLength(1)).Select(j => data[i, j]).ToArray();
- }
- public static T[] GetColumn<T>(this T[,] data, int i)
- {
- return Enumerable.Range(0, data.GetLength(0)).Select(j => data[j, i]).ToArray();
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д