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