Программа с матрицей, сравнение ее элементов по столбцу - C#

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

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

И снова прошу помощи продвинутых программистов! Задача связанная с матрицей. Задача: Составить программу, находящую в матрице D(m,n) номера строк, в которых каждый элемент больше максимального из того же столбца, расположенных до рассматриваемого. Вывести исходную матрицу, номера найденных строк. Если требуемых строк нет, то выдать соответствующее сообщение. Заранее спасибо!)
P.S. Как я понял, нужно создать матрицу, затем сравнивать элемент 1 с элементом 2 выше по столбцу. Если элемент 1 больше, то идем дальше и опять сравниваем. Если вводим количество строк 1, а столбцов 0, то типа "не с чем сравнивать". Вроде понятно, но для меня сложно реализовать, помогите пожалуйста)

Решение задачи: «Программа с матрицей, сравнение ее элементов по столбцу»

textual
Листинг программы
  1.         private string Test(int[,] mas)
  2.         {
  3.             List<int> rNumber = new List<int>(); //коллекция номеров нужных строк
  4.             int[] maxValue = new int[mas.GetLength(1)];
  5.             string text = "";
  6.             for (int i = 0; i < mas.GetLength(0); i++) //проверяем строки
  7.             {
  8.                 for (int j = 0; j < mas.GetLength(1); j++) //проверяем столбцы
  9.                 {
  10.                     if (mas[i, j] > maxValue[j])
  11.                     {
  12.                         maxValue[j] = mas[i, j];
  13.                         //если значение меньше, чем максимальное значениев столбце до проверяемой строки - прерываем дальнейшую проверку этой строки
  14.                         if (j == mas.GetLength(1) - 1) rNumber.Add(i);
  15.                     }
  16.  
  17.                     //если значение меньше, чем в предыдущей ячейке столбца - прерываем дальнейшую проверку этой строки
  18.                     if (mas[i, j] < maxValue[j]) break;
  19.                 }
  20.             }
  21.             text += "Исходная матрица:\n";
  22.             for (int i = 0; i < mas.GetLength(0); i++) //выводим исходную матрицу
  23.             {
  24.                 text += "Строка " + i + ": ";
  25.                 for (int j = 0; j < mas.GetLength(1); j++)
  26.                 {
  27.                     text += mas[i, j] + "\t";
  28.                 }
  29.                 text += "\n";
  30.             }
  31.  
  32.             if (rNumber.Count() == 0) //если коллекция строк пуста - дальше не идём
  33.             {
  34.                 return text = "Нужная строка не найдена.";
  35.             }
  36.  
  37.             text += "Найденные строки:\n";
  38.             for (int i = 0; i < rNumber.Count(); i++)
  39.             {
  40.                 text += "Строка " + i + ": ";
  41.                 for (int j = 0; j < mas.GetLength(1); j++)
  42.                 {
  43.                     text += mas[rNumber[i], j] + "\t";
  44.                 }
  45.                 text += "\n";
  46.             }
  47.             return text;
  48.         }
  49. //Использование
  50.             int[,] mas= //создать массив;
  51.             MessageBox.Show(Test(mas));//передать его и вернуть текст

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


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

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

10   голосов , оценка 4.3 из 5

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

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

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