Отсортировать столбцы по модулю его элементов
мне нужно отсортировать столбцы матрицы по убыванию суммы модулей положительных чисел. Например если сумма модулей положительных элементов 1го столбца = 10, 2го = 24, а 3го = 4 то отсортировать столбцы так: 2,1,3
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
namespace console_2D
{
public struct Count
{
public double sum; // - сумма столбца
}
class Program
{
static void Main()
{
Console.InputEncoding = Encoding.Default;
Console.OutputEncoding = Encoding.Default;
Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US");
Random rand = new Random();
int n, k;
Console.Write("Количество строк: ");
while (!int.TryParse(Console.ReadLine(), out n) || n <= 0)
Console.WriteLine("Ошибка ввода\nn = ");
Console.Write("Количество столбиковв: ");
while (!int.TryParse(Console.ReadLine(), out k) || k <= 0)
Console.WriteLine("Ошибка ввода\nk = ");
double[,] matrix = new double[n, k];
Count[] sum_pos_colums = new Count[k];
bool negative;
int n_elements = 0;
for (int i = 0; i < n; i++)
{
negative = true;
for (int j = 0; j < k; j++)
{
matrix[i, j] = Math.Round(rand.NextDouble() * (18.4 + 27.8) - 27.8, 1);
Console.Write($"{matrix[i, j]} ");
if (matrix[i, j] > 0)
negative = false;
}
Console.WriteLine();
if (negative)
n_elements++;
}
Console.WriteLine($"Всего{n_elements} строк без положительных элементов .");
for (int j = 0; j < k; j++)
{
for (int i = 0; i < n; i++)
{
if (matrix[i, j] > 0)
sum_pos_colums[j].sum += (matrix[i, j]);
}
Console.WriteLine($"Сумма модулей положительных чисел {j+1} столбца= {sum_pos_colums[j].sum};");
}
}
}
}