Разница между %i и %d при считывании чисел в команде scanf()

09.10.2017

Хорошая задачка Счастливый билет. На ней можно заметить разницу между "%i" и "%d", это полезно тем, кто не читает документацию.

WA на десятом тесте
WA на десятом тесте

Кто пишет scanf("%i", &a), тот получает «Wrong answer» на десятом тесте.
Если писать scanf("%d", &a) или std::cin >> a, то решение проходит.

документация функции scanf
документация функции scanf

Читаем документацию: %i позволяет читать восьмиричные и шестнадцатиричные числа. Строчки «12», «014», «0xc», «0xC» будут прочитаны как 12. А по условию задачи номера билетов идут на вход с ведущими нулями, например: 000999.

Разницы между %i и %d нет для команды printf(). Демка на фотке:

текст демки и результат выполнения
текст демки и результат выполнения

Документация:

---------------------------

Наша основная тема — программирование для начинающих. Мы рассказываю о том, как решать задачки и делать проекты. Также даём советы об изучении английского языка, математики и развитии других навыков, полезных для ребёнка.

Подписывайтесь на нас в:

ВК: https://vk.com/progschool927

Фейсбуке: https://www.facebook.com/eduoja.ru/

Инстаграме: https://www.instagram.com/eduoja

Ставьте лайки и оставляйте комментарии. Ведь чем больше будет комментариев, тем интереснее и полезнее сможем делать следующие выпуски.