Форум сайта python.su
Дана последовательность вещественных чисел, оканчивающаяся числом 10000. Количество чисел в последовательности не меньше двух. Определить, является ли последовательность упорядоченной по возрастанию. В случае отрицательного ответа определить порядковый номер первого числа, нарушающего такую упорядоченность.
Офлайн
Это должно помочь.
>>> a = [0,1,2,3,5,6,4,7] >>> a == sorted(a) False >>> a [0, 1, 2, 3, 5, 6, 4, 7] >>> if a != sorted(a): for i in zip(a, sorted(a)): if i[0] != i[1]: print(a.index(i[0])) break 4
Офлайн
MindHatter
Зря ты так извращаешься.
Тут просто нужно сравнивать два соседних числа и если условие нарушается, делать return
Офлайн
Поподробнее можно? Что за соседние числа? И чем их сравнение будет отличаться от преложенного варианта?
Офлайн
MindHatter
Что за соседние числа?
[1, 2, 3, 4, 5, 6, 7, 8, 9] 1<2 2<3
MindHatterТы бессмысленно сортируешь список несколько раз. Используешь два списка, вместо одного исходного. Делаешь print break вместо return.
И чем их сравнение будет отличаться от преложенного варианта?
Офлайн
Поддерживаю Budulianin
def is_sorted(arr): for i in range(1,len(arr)): if arr[i-1] > arr[i]: return arr[i] return True
Отредактировано Singularity (Май 27, 2014 18:31:41)
Офлайн
Вы не могли бы, пожалуйста, полностью написать программу или показать, в чем моя ошибка
import random a=range(10001) n=int(input('Vvedite kol-vo chlenov')) for i in range(1, n+1): a[i]= random.randrange(10000) print(a[i]) i=1 s=1 while s!= 0: if (a[i + 1]) < (a[i]): print('Первое число,нарушающее упорядоченность : ', a[i + 1]) s=0 i= i + 1 if i == n: break if s != 0: print('Последовательность упорядочена')
Отредактировано Dark95 (Май 27, 2014 21:33:54)
Офлайн
>>> def f(seq): ... assert len(seq) > 1 ... i = 1 ... while True: ... if seq[i - 1] > seq[i]: ... return i + 1 ... if seq[i] == 10000: ... break ... i += 1 ... return 0 ... >>> f([1, 10000]) 0 >>> f([1, 2, 10000]) 0 >>> f([1, 2, 3, 10000]) 0 >>> f([1, 2, 3, 1, 10000]) 4 >>> f([1, 2, 3, 3, 10000]) 0 >>> f([1, 2, 3, 10001, 10000]) 5 >>>
Офлайн
а что делать,если они все не работают?может кто-нибудь написать полную программу,пожалуйста?
Офлайн
valeriya0496
а что делать,если они все не работают?может кто-нибудь написать полную программу,пожалуйста?
Офлайн