Чего то у тебя конкретно глючит. Не может оно зацикливаться!
Кроме того, не вижу у тебя блоковых скобок в цикле {} между do и while.
Ещё очень некрасиво смешиваешь С и С++ вывод (printf и cout).
И отформатируй вывод результатов хотябы так:
Код:
cout << x << " " << y << " " << z;
Программу проверял на Borland C++, всё точно работает.