Дана матрица B[N, М]. Найти в каждой строке матрицы максимальный и минимальный элементы
Задание: Дана матрица B[N, М]. Найти в каждой строке матрицы максимальный и минимальный элементы и поменять их с первым и последним элементами строки соответственно.
Я сделал код - в итоге не работает: При вводе двух чисел ошибка сразу, а вот поменять их с первым и последним элементами строки - я не понимаю как сделать. Что не так? Заранее благодарю.
N = int(input())
M = int(input())
B = [[random.randrange(10) for i in range(N)] for j in range(N)]
for i in range(N, M):
if B[i][j] >= 0:
print('Максимальный элемент:', B)
if B[i][j] < 0:
print('Минимальный элемент:', B)
Ответы (1 шт):
Автор решения: Евгений
→ Ссылка
import random
N = int(input())
M = int(input())
B = [[random.randrange(10) for i in range(M)] for j in range(N)] # был неверно задан внутренний range
# для подобных случаев (когда нужен и индекс, и элемент) лучше воспользоваться enumerate
for i, row in enumerate(B):
max = min = 0
# поиск индексов максимального и минимального элемента
for j, elem in enumerate(row):
if elem > row[max]:
max = j
if elem < row[min]:
min = j
# меняем местами максимальный и нулевой
row[max], row[0] = row[0], row[max]
# меняем местами минимальный и последний
row[min], row[-1] = row[-1], row[min]
print(B)