У вас есть этот кусок:
if (counter == 4) { //completely skips this if
counter == 1;
}
Он не пропущен (насколько видно из кода, который вы разместили). Это просто ничего не делает. Вы сравниваете counter
с 1, а затем выбрасываете полученное логическое значение.
Чтобы исправить, переключитесь на назначение, используйте counter = 1
.
Ваш компилятор должен был предупредить вас о том, что «код не имеет никакого эффекта». Включите предупреждения (-Wall -Wextra
для gcc и clang , /W3
или /W4
для Visual Studio - это хорошо) и исправьте их .