Здравствуйте, заранее извиняюсь за этот вопрос. Нужно упорядочить столбики матрицы за убыванием количеств нулей в этих столбиках (то есть, слева столбики, где нулей больше, затем те где поменьше, и так до правого края, где те столбики, в которых нулей меньше).
using System;
using System.Collections.Generic;
namespace Arrays
{
class Program
{
static void Print(int[,] arr)
{
for (int i = 0; i < arr.GetLength(0); i++, Console.WriteLine())
for (int j = 0; j < arr.GetLength(1); j++)
Console.Write("{0,3}", arr[i, j]);
}
static int[,] Get_Manually(int rows, int coluns)
{
int[,] mas = new int[rows, coluns];
for (int i = 0; i < rows; i++)
{
for (int j = 0; j < coluns; j++)
{
Console.Write("mas[" + i + "," + j + "]: ");
mas[i, j] = int.Parse(Console.ReadLine());
}
}
Console.WriteLine();
return mas;
}
static int[,] Choose(int answ, int a, int b)
{
int[,] matrix = new int[a, b];
if (answ == 1)
{
matrix = GetRandom(a, b);
}
else if (answ == 2)
{
Console.WriteLine("Заполни матрицу");
matrix = Get_Manually(a, b);
}
return matrix;
}
static int[,] GetRandom(int rows, int coluns)
{
int[,] result = new int[rows, coluns];
Random rand = new Random();
for (int i = 0; i < rows; i++)
{
for (int j = 0; j < coluns; j++)
{
result[i, j] = rand.Next(5);
}
}
return result;
}
static void Sort(int[,] arr, List<int> indexOfRawsWithMinSum)
{
int len = arr.GetLength(1);
for (int k = 0; k < indexOfRawsWithMinSum.Count; k++)
{
for (int i = 1; i < len; i++)
{
for (int j = 0; j < len - i; j++)
{
if (
arr[indexOfRawsWithMinSum[k], j] <
arr[indexOfRawsWithMinSum[k], j + 1]
)
{
Swap(ref arr[indexOfRawsWithMinSum[k], j],
ref arr[indexOfRawsWithMinSum[k], j + 1]);
}
}
}
}
}
static void Swap(ref int e1, ref int e2)
{
int temp = e1;
e1 = e2;
e2 = temp;
}
static void FindNulls(int[,] arr)
{
for (int i = 0; i < arr.GetLength(0); i++)
{
for (int j = 0; j < arr.GetLength(1); j++)
{
if (arr[i,j]==0)
{
Console.WriteLine("True");
}
}
}
}
static void Main(string[] args)
{
Console.WriteLine("Введите размерность матрицы: ");
Console.Write("Первое значение: ");
int first_value = int.Parse(Console.ReadLine());
Console.Write("Второе значение: ");
int second_value = int.Parse(Console.ReadLine());
Console.WriteLine("Как следует заполнить матрицу:" + "\nРандомно нажмите 1" + "\nВручную нажмите 2");
int answ = int.Parse(Console.ReadLine());
int[,] matrix = Choose(answ, first_value, second_value);
Print(matrix);
//Sort(matrix, first_value, second_value);
Console.ReadKey();
}
}
}
Извиняюсь за большое количество мусора в коде(были разные мысли)
Заранее спасибо