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