$ 0 0 Acho que o problema está no int dir = 1 dentro do for, porque mesmo quando dir passa a -1, quando o loop volta a ser exectado, o dir volta a ser 1.