код по задаче: Определить, является ли массив упорядоченным по возрастанию. В случае отрицательного ответа определить номер первого элемента, нарушающего такую упорядоченность.
Как уже верно заметили, два цикла совершенно лишние. Но лишний цикл именно по 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] нарушать порядок никак не может).
1. Если n два раза подряд ввести отрицательное, на второй раз примет.
Сделайте while вместо if.
2. Цикл по i лишний, для проверки массива достаточно пройти его один раз.
3. Может быть так, что a[0] > a[1]. Тогда мы получим b = 0, и программа решит, будто всё хорошо. Предлагаю для хорошего исхода использовать не b = 0, а b = −1.