Вот сам код:
unsigned int i;
for (i = 100; i >= 0; --i)
printf("%d\n", i);
В этом коде есть две небольшие ошибки, которые вам стоит найти.
Ошибки
Первым делом, стоит обратить внимания на неправильное определения переменной
i. Дело в том, что в данном случае оно является неверным. Тип
unsigned int говорит о том, что значения этой переменной могут быть только цифры, при чем только положительные цифры без знака минус. Данная запись приводит к тому, что цикл будет выполняться вечно, так как условие всегда будет истинным
(true).
Корректный код состоял бы из такого условия i > 0
. Он мог бы вывести все значения, кроме нуля. Цикл завершился бы и тогда мы могли бы после самого цикла прописать еще и вывод 0. К примеру, у нас бы получилось нечто вроде этого:
unsigned int i;
for (i = 100; i > 0; --i)
printf("%d\n", i);
printf("%d\n", i);
Вторая ошибка намного проще и заключается в том, что мы используем
%d
вместо того чтобы использовать
%u
. Поскольку мы выводим числа без минуса, то именно так должно все быть. В итоге у нас получился вот такой код, который верно выводит значения от 100 до 1:
unsigned int i;
for (i = 100; i > 0; --i)
printf("%u\n", i);