Проверить, все ли строки матрицы упорядочены по возрастанию. Если не все, найти номер первой неупорядоченной строки
Нужно построить матрицы и проверить их порядок по возрастанию, если такие не все, то первый номер такой матрицы. Код есть, но кроме плохой работоспособности нужно ещё добавить досрочный выход из цикла. Также загон преподавателя, нужен без break.
n = int(input("Введите размер матрицы: "))
A = [[0] * n] * n
print("Введите матрицу")
for i in range (0, n):
for j in range (0, n):
A[i][j] = input()
for i in range (0, n):
for j in range (0, n-1):
if A[i][j] >= A[i][j+1]:
print(i+1)
Ответы (1 шт):
Автор решения: Zhihar
→ Ссылка
Во-первых так
A = [[0] * n] * n
нельзя, поскольку у вас будет массив одного массива и при изменении 1 ячейки у вас будет изменено n ячеек
Правильнее было бы сделать так:
A = [[0 for j in range(n)] for i in range(n)]
Во-вторых в вашем коде вы как-то с отступами напутали (при копировании текста возможно?)
В третьих выйти из вложенного цикла можно несколькими способами:
способ 1 - завернуть циклы в функцию
def check(matrix):
for i in range(len(matrix)):
for j in range(len(matrix[i])):
# что-то делаем
if xxx:
return (i, j)
return (-1, -1)
способ 2 - добавить флаг прерывания цикла:
res = (-1, -1)
for i in range(len(matrix)):
isBreak = False
for j in range(len(matrix[i])):
# что-то делаем
if xxx:
res = (i, j)
isBreak = True
break
if isBreak:
break