Подсчёт числа сравнений в условии цикла
Выполняю задание - сравнить алгоритмы сортировки массивов по количеству сравнений (как элементов, так и прочих). Есть два цикла, в условиях которых подсчёт числа сравнений выполняется неправильно (по мнению преподавателя).
do
{
a0++;
array[1][a1] = array[0][a0];
a1++;
}
while (comp_oth++ && comp_el++ && a0 < n - 1 && array[0][a0] > array[0][a0 + 1]);
И в следующем коде:
while ((comp_oth += 2) && (comp_el += 2) && array[1][i] && array[2][j] && (array[1][i] > array[1][i + 1] || array[2][j] > array[2][j + 1]))
{
if (comp_el++ && array[1][i] > array[2][j])
{
array[0][a0] = array[1][i];
a0++; i++;
}
else
{
array[0][a0] = array[2][j];
a0++; j++;
}
}
Причём подсчёт неверный только в строчках с while. Comp_oth - счётчик прочих сравнений, comp_el - счётчик сравнений элементов. Подскажите, почему я неправильно выполняю подсчёт? Указано, что подсчёт неверен по одной и той же причине.