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