El problema en el código es que el contador nunca se reduce, lo que hace que el ciclo while se vuelva infinito. La condición while(contador > 0) depende de que el valor de contador decrezca en cada iteración, pero eso no sucede en el código. Se Debe decrementar el valor de contador en cada iteración del bucle while. utilizando contador--