Программа, которая только печатает, — это плакат: она каждый раз говорит одно и то же. Дайте ей ввод — и одна программа сможет ответить на миллион разных вопросов, а дайте ей арифметику — и она сможет вычислять ответы, а именно этого требует каждая задача на этом сайте.
Два направления
Проще всего запомнить так: стрелки показывают, куда идут данные. А cin
нужно куда-то положить прочитанное, поэтому переменная должна существовать
заранее:
Главное отличие от школьного программирования
Программа, написанная для человека, обычно вежливо спрашивает:
Программа, написанная для проверяющей системы, так делать не должна. Система
подаёт вашей программе ввод, а затем сравнивает всё, что она напечатала, с
ожидаемым ответом символ за символом. How old are you? в ожидаемом ответе нет,
поэтому идеально работающая программа получает Неправильный ответ.
Отсюда правило для каждой задачи: печатайте ровно то, что просит задача, — никаких вопросов, подписей и лишнего текста.
Чтение нескольких значений
cin >> можно выстраивать в цепочку, и он читает значения по порядку,
пропуская все пробелы и переводы строк между ними. Пройдите по шагам с вводом
7 3:
Раз пробелы и переводы строк пропускаются, неважно, будет ли ввод 7 3 на
одной строке или 7 и 3 на двух. Важен порядок: cin >> width >> height
кладёт первое число в width, а второе — в height; дайте ему 3 7 — и он
напечатает 3 x 7.
