Решение: Подсчёт обменов в массиве
В программе используется одномерный целочисленный массив $A$ с индексами от 0 до 9. Значения элементов равны 9, 6, 4, 7, 3, 2, 1, 5, 0, 8 соответственно. Определите значение переменной $c$ после выполнения фрагмента программы.
В цикле перебираются индексы от 0 до 8. Если $A[i] < A[9]$, переменная $c$ увеличивается на 1, после чего элементы $A[i]$ и $A[9]$ обмениваются местами.
Решение по шагам
6 шаговИзначально массив имеет вид $[9,6,4,7,3,2,1,5,0,8]$, поэтому $A[9]=8$ и $c=0$.
При $i=0$: $9<8$ — неверно, обмена нет. При $i=1$: $6<8$ — верно, $c=1$, после обмена $A[9]=6$.
При $i=2$: $4<6$ — верно, $c=2$, после обмена $A[9]=4$. При $i=3$: $7<4$ — неверно.
При $i=4$: $3<4$ — верно, $c=3$, после обмена $A[9]=3$.
При $i=5$: $2<3$ — верно, $c=4$, после обмена $A[9]=2$. При $i=6$: $1<2$ — верно, $c=5$, после обмена $A[9]=1$.
При $i=7$: $5<1$ — неверно. При $i=8$: $0<1$ — верно, поэтому $c=6$.
Где здесь ошибаются
Сравнивать все элементы только с первоначальным значением $A[9]=8$.
Не учитывать обмен элементов после выполнения условия.
Продолжать цикл до индекса 9, хотя он выполняется только до 8.