код:
static auto makeBinary(const unsigned int decimal) -> void {
if (const unsigned int digit{ decimal % 2 }; !decimal) {
std::cout << digit; // if I put 0 then it fails
} else {
makeBinary(decimal / 2u);
std::cout << digit; // If I put 1 then it fails
}
}
Я предполагаю, что в теории можно убрать const unsigned int{ decimal % 2};, digit в true блоке заменить на 0, а в false на 1 и функция останется рабочей, но на деле я получаю разный вывод. Если я оставляю digit то всё работает, если соответсвенно я делаю замены, которые я описал выше, то вывод становится неверным.
В итоге, пожалуйста объясните мне почему я получаю разный вывод?
Конечно, я заранее благодарю Вас 😀
у тебя же !decimal в условии, а не !digit
Вывод будет неверный, если я поменяю на !digit.
Обсуждают сегодня