Найти среднее арифметическое каждого из столбцов матрицы - 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(); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д