Обработка двумерных массивов - 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}");
}
}
}