Ваша ошибка в том, что вы говорите cents = round(cents * 100)
, когда действительно хотели сказать cents = dollars * 100
Код трудно читать из-за отсутствия согласованных отступов, но вы делаете это сначала, пока l oop также не работает должным образом. Он проверяет стоимость центов, но на самом деле вы не пытаетесь конвертировать доллары в центы до тех пор, пока не закончите l oop. Другими словами, do-while l oop будет запускаться только один раз. Вы можете ввести в него отрицательное число и нарушить намерение программы. Вам нужно преобразовать в центы в пределах этого l oop. Если это сработает, оцените голос за.