Программа с матрицей, сравнение ее элементов по столбцу - C#
Формулировка задачи:
И снова прошу помощи продвинутых программистов! Задача связанная с матрицей.
Задача:
Составить программу, находящую в матрице D(m,n) номера строк, в которых каждый элемент больше максимального из того же столбца, расположенных до рассматриваемого. Вывести исходную матрицу, номера найденных строк. Если требуемых строк нет, то выдать соответствующее сообщение.
Заранее спасибо!)
P.S. Как я понял, нужно создать матрицу, затем сравнивать элемент 1 с элементом 2 выше по столбцу. Если элемент 1 больше, то идем дальше и опять сравниваем. Если вводим количество строк 1, а столбцов 0, то типа "не с чем сравнивать". Вроде понятно, но для меня сложно реализовать, помогите пожалуйста)
Решение задачи: «Программа с матрицей, сравнение ее элементов по столбцу»
textual
Листинг программы
private string Test(int[,] mas) { List<int> rNumber = new List<int>(); //коллекция номеров нужных строк int[] maxValue = new int[mas.GetLength(1)]; string text = ""; for (int i = 0; i < mas.GetLength(0); i++) //проверяем строки { for (int j = 0; j < mas.GetLength(1); j++) //проверяем столбцы { if (mas[i, j] > maxValue[j]) { maxValue[j] = mas[i, j]; //если значение меньше, чем максимальное значениев столбце до проверяемой строки - прерываем дальнейшую проверку этой строки if (j == mas.GetLength(1) - 1) rNumber.Add(i); } //если значение меньше, чем в предыдущей ячейке столбца - прерываем дальнейшую проверку этой строки if (mas[i, j] < maxValue[j]) break; } } text += "Исходная матрица:\n"; for (int i = 0; i < mas.GetLength(0); i++) //выводим исходную матрицу { text += "Строка " + i + ": "; for (int j = 0; j < mas.GetLength(1); j++) { text += mas[i, j] + "\t"; } text += "\n"; } if (rNumber.Count() == 0) //если коллекция строк пуста - дальше не идём { return text = "Нужная строка не найдена."; } text += "Найденные строки:\n"; for (int i = 0; i < rNumber.Count(); i++) { text += "Строка " + i + ": "; for (int j = 0; j < mas.GetLength(1); j++) { text += mas[rNumber[i], j] + "\t"; } text += "\n"; } return text; } //Использование int[,] mas= //создать массив; MessageBox.Show(Test(mas));//передать его и вернуть текст
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д