Решение: Обработка массива обменом
В программе используется одномерный целочисленный массив $A$ с индексами от 0 до 11. Значения элементов равны 20, 19, 17, 41, 23, 12, 24, 16, 4, 13, 6, 15 соответственно, то есть $A[0] = 20$, $A[1] = 19$ и так далее. Определите значение переменной $s$ после выполнения фрагмента программы.
1s = 0 2n = 0 3for i in range(12): 4 if A[i] <= A[n]: 5 s += i 6 t = A[i] 7 A[i] = A[n] 8 A[n] = t
Решение по шагам
3 шагаТак как $n = 0$ и значение $n$ не изменяется, на каждом шаге сравниваются $A[i]$ и $A[0]$. При выполнении условия к $s$ прибавляется индекс $i$, после чего элементы $A[i]$ и $A[0]$ меняются местами.
$$s := s + i$$Последовательно отслеживая изменения массива, получаем срабатывание условия при индексах $i = 0, 1, 2, 5, 8$.
Складываем индексы, при которых выполняется условие:
$$s = 0 + 1 + 2 + 5 + 8 = 16$$Где здесь ошибаются
Не учитывать обмен элементов после выполнения условия.
Считать, что переменная $n$ изменяется внутри цикла.
Складывать значения элементов массива вместо их индексов.