Дана целочисленная прямоугольная матрица - C# (185446)
Формулировка задачи:
Дана целочисленная прямоугольная матрица. Определить количество столбцов не содержащих ни одного нулевого элемента.
Характеристикой строки целочисленной матрицы назовем сумму ее положительных четных элементов. Переставляя строки заданной матрицы, расположить их в соответствии с ростом характеристик.
Решение задачи: «Дана целочисленная прямоугольная матрица»
textual
Листинг программы
class Program
{
static void Main(string[] args)
{
var m = new int[,] {
{ 4,5,-6,4 },
{ -7,0,9,2 },
{ 1,2,3,2 }
};
// Определить количество столбцов не содержащих ни одного нулевого элемента
var nonZeroColumnsCount = Enumerable.Range(0, m.GetLength(1))
.Count(c => Enumerable.Range(0, m.GetLength(0)).All(r => m[r, c] != 0));
// Характеристикой строки целочисленной матрицы назовем сумму ее положительных четных элементов. Переставляя строки заданной матрицы, расположить их в соответствии с ростом характеристик.
var sorted = Enumerable.Range(0, m.GetLength(0))
.Select(r => Enumerable.Range(0, m.GetLength(1)).Select(c => m[r, c]).ToArray())
.OrderBy(r => r.Where(n => n > 0 && n % 2 == 0).Sum()).SelectMany(a=>a).ToArray();
var result = (int[,]) m.Clone();
Buffer.BlockCopy(sorted, 0, result, 0, sorted.Length * sizeof(int));
}
}