Сортировку по убыванию в строке? каким образом её можно сделать? то есть мне нужно перебирать каждое значение циклами for, сравнивать её с переменной и переписывать массив?
int[] srow =new int [row];
int[] scol =new int [col];
for (int i=0;i<row;i++)
{
for (int j=i+1;j<col;j++)
{
if (array[i,j] >= array[i,j]) {Console.Write(array[i,j]);}
}
}
C/C++
Как отсортировать строку двумерного массива?
1. Судя по Console.Write - это не си и не c++, а шарп. Соответственно, там есть Array.Sort и подобное.
2. Если нельзя пользоваться встроенными методами сортировки - то открыть учебник и прочитать, как делается алгоритм какой-нибудь сортировки.
2. Если нельзя пользоваться встроенными методами сортировки - то открыть учебник и прочитать, как делается алгоритм какой-нибудь сортировки.
using System;
internal class Program {
private static void Main() {
var rows = Integer("Количество строк: ");
var cols = Integer("Количество столбцов: ");
Console.WriteLine();
var matrix = CreateMatrix(rows, cols);
ShowMatrix(matrix);
Console.WriteLine();
SortMatrixRowsInDescendingOrder(ref matrix);
ShowMatrix(matrix);
Console.ReadKey();
}
private static int Integer(string msg) {
int value;
do {
Console.Write(msg);
} while (!int.TryParse(Console.ReadLine(), out value));
return value;
}
private static int[][] CreateMatrix(int rows, int cols) {
var rand = new Random();
var matrix = new int[rows][];
for (int i = 0; i < rows; ++i) {
matrix[i] = new int[cols];
for (int j = 0; j < cols; ++j) {
matrix[i][j] = rand.Next(10, 100);
}
}
return matrix;
}
private static void ShowMatrix(int[][] matrix) {
foreach (var row in matrix) {
foreach (var value in row) {
Console.Write($"{value} ");
}
Console.WriteLine();
}
}
private static void SortMatrixRowsInDescendingOrder(ref int[][] matrix) {
foreach (var row in matrix) {
Array.Sort(row);
Array.Reverse(row);
}
}
}
Смотря что надо сделать. Если, например, надо отсортировать по убыванию все строки числовой матрицы и скорость сортировки некритична, тогда всегда можно воспользоваться классикой жанра: пузырьком (бабл-сортингом) или чойс-сортингом. Такие методы всегда должны быть в личном арсенале любого программиста, хотя бы даже и начинающего. А вот и пример работы пузырька для рандомной матрицы:
using System;
namespace CSharp_Shell
{ public static class Program
{ public static void Main()
{ int i, j, k, l, m, n; Console.Write("l m: ");
var s = Console.ReadLine().Split(" ");
l = int.Parse(s[0]); m = int.Parse(s[1]);
Console.WriteLine("Первоначальный массив:");
Random rnd = new Random();
int [,] A = new int [l,m];
for (i = 0; i < l; i++) { for (j = 0; j < m; j++)
{ A[i,j] = rnd.Next () % 199 - 99;
Console.Write("{0,4:d}", A[i,j]); }
Console.WriteLine(); }
// Сама пузырьковая сортировка по убыванию:
for (i = 0; i < l; i++) for (j = 1; j < m; j++)
for (k = m - 1; k >= j; k--) if (A[i,k-1] < A[i,k])
{ n = A[i,k-1]; A[i,k-1] = A[i,k]; A[i,k] = n; }
// Здесь она занимает всего три строчки
Console.WriteLine("Отсортированный массив:");
for (i = 0; i < l; i++) { for (j = 0; j < m; j++)
Console.Write("{0, 4:d}", A[i, j]);
Console.WriteLine(); } } } }
А так-то да - правильно говорят: в самом Шарпе есть довольно мощные средства поддержки таких вещей...
using System;
namespace CSharp_Shell
{ public static class Program
{ public static void Main()
{ int i, j, k, l, m, n; Console.Write("l m: ");
var s = Console.ReadLine().Split(" ");
l = int.Parse(s[0]); m = int.Parse(s[1]);
Console.WriteLine("Первоначальный массив:");
Random rnd = new Random();
int [,] A = new int [l,m];
for (i = 0; i < l; i++) { for (j = 0; j < m; j++)
{ A[i,j] = rnd.Next () % 199 - 99;
Console.Write("{0,4:d}", A[i,j]); }
Console.WriteLine(); }
// Сама пузырьковая сортировка по убыванию:
for (i = 0; i < l; i++) for (j = 1; j < m; j++)
for (k = m - 1; k >= j; k--) if (A[i,k-1] < A[i,k])
{ n = A[i,k-1]; A[i,k-1] = A[i,k]; A[i,k] = n; }
// Здесь она занимает всего три строчки
Console.WriteLine("Отсортированный массив:");
for (i = 0; i < l; i++) { for (j = 0; j < m; j++)
Console.Write("{0, 4:d}", A[i, j]);
Console.WriteLine(); } } } }

Похожие вопросы
- Заполнить двумерный массив 5*3 и найти строку с максимальным произведением элементов. C++
- Двумерные массивы C++, ничего не понимаю((( Нужна помощь
- Запись и чтение двумерного массива в бинарный файл
- Двумерный массив C++
- Задача.Программирование.С++.Динамический двумерный массив.
- Двумерный массив и строки
- Ввести двумерный массив A(n x m)
- Создать и вывести двумерный массив через функции
- Указатель превращается в двумерный массив. (Си)
- Как посчитать самую длинную серию чисел в двумерном массиве, а выводить номер строки