Отсортировать столбцы по модулю его элементов

мне нужно отсортировать столбцы матрицы по убыванию суммы модулей положительных чисел. Например если сумма модулей положительных элементов 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};");
 
 
            }
        }
    }
}

Ответы (0 шт):