Питон 9 класс массивы, где ошибка в программе? выдает неверные значения - Компьютерные вопросы

Вопрос Питон 9 класс массивы, где ошибка в программе? выдает неверные значения

Регистрация
2 Фев 2013
Сообщения
92
Репутация
1
Спасибо
1
Монет
0
284430322_f1376088f0e8d640abee86d8156cc9b3_800.png

код по задаче: Определить, является ли массив упорядоченным по возрастанию. В случае отрицательного ответа определить номер первого элемента, нарушающего такую упорядоченность.
 
Регистрация
29 Июл 2013
Сообщения
71
Репутация
0
Спасибо
1
Монет
0
# Ошибка в строке 11. b = должно быть заменено на b = 0.
 
Регистрация
30 Апр 2013
Сообщения
80
Репутация
0
Спасибо
0
Монет
0
Как уже верно заметили, два цикла совершенно лишние. Но лишний цикл именно по j, потому что он проходит по массиву с конца и найти первый нарушающий элемент не может, в лучшем случае последний.

Кроме того, нарушена логика: нарушает порядок элемент a[j+1], а не a[j]. b = 0
for i in range(1, n):
if a[i-1] > a:
b = i Дальше без изменений (именно b > 0, элемент a[0] нарушать порядок никак не может).
 
Регистрация
19 Авг 2013
Сообщения
88
Репутация
13
Спасибо
1
Монет
0
я бы сделал так:
# данный список
array = []
if array != sorted(array):
for i in range(len(array))
if array != sorted(array):
print(array)
 

des

Capitan

des

Capitan
Регистрация
22 Авг 2013
Сообщения
73
Репутация
0
Спасибо
0
Монет
0
1. Если n два раза подряд ввести отрицательное, на второй раз примет.
Сделайте while вместо if.

2. Цикл по i лишний, для проверки массива достаточно пройти его один раз.

3. Может быть так, что a[0] > a[1]. Тогда мы получим b = 0, и программа решит, будто всё хорошо. Предлагаю для хорошего исхода использовать не b = 0, а b = −1.
 
Сверху Снизу