Сортировка двумерного массива - C# (178775)

Узнай цену своей работы

Формулировка задачи:

Результаты поиска не удовлетворили

Суть программы:

  • Пользователь задаёт размерность квадратной матрицы
  • Каждому элементу матрицы присваивается случайное значение [0, 10] включительно
  • Перебираются элемента каждого отдельного столбца
  • Элемент с наибольшим значением ставится на главную диагональ

    если там уже есть элемент, меняются местами

  • Выводится отсортированная матрица
Вопрос: почему выводится матрица в изначальном виде, не сортируется? Как исправить?

В переменной

max

сохраняем значение максимального элемента, чтобы потом переопределить в гл.диагонали

Листинг программы
  1. public void matrize ()
  2. {
  3. Random random = new Random();
  4. int k;
  5. string s;
  6. int rand;
  7. do //retry the request until the user enters the number
  8. {
  9. Console.Clear();
  10. Console.WriteLine("Enter the size of matrix");
  11. s = Console.ReadLine();
  12. } while (!int.TryParse(s, out k));
  13. int[,] matrix = new int[k, k];
  14. Console.WriteLine("The matrix before edit: ");
  15. for (int i = 0; i < k; i++)
  16. {
  17. for (int j = 0; j < k; j++)
  18. {
  19. rand = random.Next(0, 10); // Заполняем матрицу случайными числами
  20. matrix[i, j] = rand;
  21. Console.Write(matrix[i, j] + " ");
  22. }
  23. Console.WriteLine();
  24. }
  25. Console.WriteLine("The matrix after edit: ");
  26. #region
  27. for (int j = 0; j != k; j++)
  28. {
  29. for (int i = 0; i != k; i++)
  30. {
  31. int max = matrix[0, 0]; //задали максимальное значение эл-та
  32. if (matrix[i, j] < max)
  33. {
  34. //если эл-т проверки < максимального проходим дальше
  35. }
  36. else if (matrix[i, j] > max)
  37. {
  38. // если элемент проверки больше максимального
  39. // максимальному эл-ту передаётся значение эл-та
  40. max = matrix[i, j];
  41. matrix[i, j] = max;
  42. }
  43. else if (matrix[i, j] == max)
  44. {
  45. //если эл-т проверки равен максимальному
  46. matrix[i, j] = max;
  47. max = matrix[i, j];
  48. }
  49. else
  50. {
  51. Console.WriteLine("эй, пацан, дичь какая-то происходит!");
  52. }
  53. }
  54. }

Решение задачи: «Сортировка двумерного массива»

textual
Листинг программы
  1. internal class Matrix
  2.   {
  3.     private const int MinValue = 0;
  4.     private const int MaxValue = 10;
  5.     private static int[][] GetMatrixWithRandomValues(int size)
  6.     {
  7.       var maxtrix = new int[size][];
  8.       for (int i = 0; i < maxtrix.Length; i++)
  9.       {
  10.         maxtrix[i] = new int[size];
  11.         for (int j = 0; j < maxtrix[i].Length; j++)
  12.         {
  13.           var random = new Random();
  14.           maxtrix[i][j] = random.Next(MinValue, MaxValue);
  15.           Thread.Sleep(50);
  16.         }
  17.       }
  18.       return maxtrix;
  19.     }
  20.  
  21.     private static int[][] Handle(int[][] oldMatrix)
  22.     {
  23.       for (int i = 0; i < oldMatrix.Length; i++)
  24.       {
  25.         var max = oldMatrix[i].Max();
  26.         if(oldMatrix[i][i] == max)
  27.           continue;
  28.         var maxPositionIndex = oldMatrix[i].ToList().IndexOf(max);
  29.         var val = oldMatrix[i][maxPositionIndex];
  30.         oldMatrix[i][maxPositionIndex] = oldMatrix[i][i];
  31.         oldMatrix[i][i] = val;
  32.       }
  33.       return oldMatrix;
  34.     }
  35.  
  36.     private static void DisplayMatrix(int[][] matrix)
  37.     {
  38.       foreach (var t in matrix)
  39.       {
  40.         for (int j = 0; j < t.Length; j++)
  41.         {
  42.           Console.Write(t[j]);
  43.         }
  44.         Console.WriteLine();
  45.       }
  46.     }
  47.  
  48.     private static void DisplayStepByStep(int[][] sourceMatrix)
  49.     {
  50.       Console.WriteLine("Исходная матрица:");
  51.       DisplayMatrix(sourceMatrix);
  52.       Console.WriteLine("Обработанная матрица:");
  53.       DisplayMatrix(Handle(sourceMatrix));
  54.     }
  55.  
  56.     internal static void DisplayStepByStep()
  57.     {
  58.       var matrix = GetMatrixWithRandomValues(10);
  59.       DisplayStepByStep(matrix);
  60.     }
  61.   }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.923 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы