PYTHON. Программа, которая находит максимальный элемент матрицы и удаляет из матрицы строку и столбец, на которых расположен этот элемент.
Ответы на вопрос
Ниже приведена программа на Python, которая находит максимальный элемент матрицы, определяет строку и столбец, в которых он расположен, а затем удаляет эту строку и этот столбец.
Python# Ввод количества строк и столбцов n, m = map(int, input("Введите количество строк и столбцов: ").split())# Ввод матрицы matrix = []print("Введите элементы матрицы:") for _ in range(n): row = list(map(int, input().split())) matrix.append(row)# Предполагаем, что первый элемент матрицы максимальный max_element = matrix[0][0] max_row = 0 max_column = 0# Поиск максимального элемента и его координат for i in range(n): for j in range(m): if matrix[i][j] > max_element: max_element = matrix[i][j] max_row = i max_column = jprint("Максимальный элемент:", max_element) print("Номер строки:", max_row + 1) print("Номер столбца:", max_column + 1)# Удаление строки, содержащей максимальный элемент del matrix[max_row]# Удаление соответствующего столбца из оставшихся строк for row in matrix: del row[max_column]# Вывод полученной матрицы print("Матрица после удаления строки и столбца:")for row in matrix: print(*row)
Например, для матрицы:
1 2 3 4 9 6 7 8 5
максимальным элементом является число 9. Оно находится во второй строке и во втором столбце. После удаления второй строки и второго столбца получится:
1 3 7 5
Принцип работы программы:
-
Сначала вводятся размеры матрицы — количество строк
nи столбцовm. -
Затем матрица считывается построчно.
-
Переменные
max_rowиmax_columnхранят индексы строки и столбца максимального элемента. -
Двумя вложенными циклами перебираются все элементы матрицы.
-
Строка удаляется командой:
Pythondel matrix[max_row]
-
После этого из каждой оставшейся строки удаляется элемент с индексом
max_column:
Pythonfor row in matrix: del row[max_column]
Индексы в Python начинаются с нуля, поэтому при выводе номера строки и столбца к индексам прибавляется единица.
Более компактный вариант программы:
Pythonn, m = map(int, input().split()) matrix = [list(map(int, input().split())) for _ in range(n)]max_row = 0 max_column = 0for i in range(n): for j in range(m): if matrix[i][j] > matrix[max_row][max_column]: max_row = i max_column = jresult = [ [matrix[i][j] for j in range(m) if j != max_column] for i in range(n) if i != max_row ]for row in result: print(*row)
Во втором варианте исходная матрица не изменяется. Вместо удаления элементов создаётся новая матрица, в которую не включаются строка max_row и столбец max_column.
Если максимальное значение встречается в матрице несколько раз, программа удалит строку и столбец, соответствующие его первому найденному вхождению.
Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili

