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