Обработка двумерных массивов - C#
Формулировка задачи:
Здравствуйте, уважаемые! Нашел на просторах интернета такую задачку: Составить программу для ввода натурального числа k и матрицы . Требуется из матрицы A сформировать , включив в нее k столбцов с наименьшими суммами элементов(в порядке возрастания сумм).
Т.к. я только начал изучать массивы, не могу понять что означает и , по моим (скорее всего бредовым) предположением, - означает что имя массива A с m столбцов и n строк, и также с B массивом, только как из матрицы A сформировать матрицу B? Подскажите пожалуйста)
P.S. Буду рад любому ответу!
Решение задачи: «Обработка двумерных массивов»
textual
Листинг программы
using System; using System.Collections.Generic; using System.Linq; using System.IO; public class Program { public static void Main(string[] args) { var k = int.Parse(ReadLine("k: ")); var a = ReadMatrix(); var b = a.Select(x => (row: x, sum: x.Sum())).OrderBy(x => x.sum).Select(x => x.row).Take(k).ToArray(); WriteMatrix(b); } static string ReadLine(string message) { Console.Write(message); return Console.ReadLine(); } static int[][] ReadMatrix() { var sizeArray = ReadLine("Size (width, height): ").Split(' ').Select(int.Parse).ToArray(); var width = sizeArray[0]; var height = sizeArray[1]; var result = new int[height][]; foreach (var rowIndex in Enumerable.Range(0, height)) { result[rowIndex] = ReadLine($"Matrix row {rowIndex}: ").Split(' ').Select(int.Parse).Take(width).ToArray(); } return result; } static void WriteMatrix(int[][] matrix) { foreach (var rowIndex in Enumerable.Range(0, matrix.Length)) { var row = string.Join(" ", matrix[rowIndex]); Console.WriteLine($"[{rowIndex}] = {row}"); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д