Предмет: Информатика, автор: MaryArty

Дана матрица символов размером 5x5. Упорядочить символы по возрастанию их кода.​


vladbardin2014p7d85b: Какой язык программирования

Ответы

Автор ответа: Starlik69
1

Ответ:

int N = 7, M = 5;

           int[,] arr = new int[N, M];

           Random random = new Random();

           for (int i = 0; i < N; i++)

           {

               for (int j = 0; j < M; j++)

               {

                   arr[i, j] = random.Next(10, 51); // от 10 до 50

                   Console.Write(arr[i, j] + "\t");

               }

               Console.WriteLine();

           }

           Console.WriteLine();

           for (int i = 0; i < N; i++)

               Console.WriteLine(string.Join("\t", Enumerable.Range(0, arr.GetLength(1)).Select(x => arr[i, x]).OrderBy(x => x).ToArray()));


vladbardin2014p7d85b: Любой символ может бить представлен числом, по таблице ASCII
vladbardin2014p7d85b: не совсем понимаю суть вопроса, объясните, пожалуйста что вы имеете ввиду по заголовочной частью
vladbardin2014p7d85b: Это не мой код, но фактически, любой символ - это число, поэтому логично сделать каст символа к числу и их отсортировать, а при выводе сделать обратный каст. Это если не менять переведённый выше код. Или же второй вариант - написать изначально код для сортировки символов. Но на практике можно использовать оба варианта
vladbardin2014p7d85b: Ну число будет, абстрактно ровно настолько, насколько абстрактен символ, а то что решение будет в три строки я согласен.
Автор ответа: BobbyFresnel
1

===== PascalABC.NET =====

begin

 var h: HashSet<char> := ['A'..'Z', 'a'..'z', '0'..'9', 'А'..'Я', 'а'..'я', 'Ё', 'ё'];

 var a := h.ToArray;

 var n := a.Length - 1;

 var b := MatrGen(5, 5, (i, j) -> a[Random(0, n)]);

 b.Println(3);

 Writeln;

 var t := b.ElementsByRow.Sorted.ToArray;

 b := MatrGen(5, 5, (i, j)-> t[5 * i + j]);

 b.Print(3)

end.

Приложения:
Интересные вопросы