Найдите ошибки в следующем коде
69К открытий70К показов
Дан код:
В коде есть две ошибки.
Первая заключается в том, что используется тип unsigned int
, который работает только со значениями, большими или равными нулю. Поэтому условие цикла for
всегда будет истинно, и цикл будет выполняться бесконечно.
Корректный код, выводящий значения всех чисел от 100 до 1, должен использовать условие i > 0
. Если нам на самом деле нужно вывести нулевое значение, то следует добавить дополнительный оператор printf
после цикла for
.
Вторая ошибка — вместо %d
следует использовать %u
, поскольку мы выводим целые значения без знака.
Теперь этот код правильно выведет список чисел от 100 до 1, в убывающем порядке.
Разбор взят из книги Гейл Л. Макдауэлл «Cracking the Coding Interview» (есть в переводе).
69К открытий70К показов