Несколько значений в одном printf
До сих пор каждый printf выводил одно значение. Но один printf может вывести несколько. Напишите в тексте по одному %d для каждого значения, а сами значения — после текста, через запятые:
int apples = 4;
int pears = 3;
printf("Яблок: %d, груш: %d\n", apples, pears);
printf("%d + %d = %d\n", apples, pears, apples + pears);Выведется:
Яблок: 4, груш: 3
4 + 3 = 7Как вы знаете с прошлого урока, текст в кавычках — это форматная строка: она определяет, как будет выглядеть строка вывода. Каждый %d в ней — спецификатор формата, заменитель для одного значения. printf заполняет их по порядку: первое значение попадает в первый %d, второе — во второй %d и так далее. Значением может быть переменная, число или целое вычисление, например apples + pears.
Поэтому порядок значений важен. Если поменять их местами, в выводе они тоже поменяются:
int home = 2;
int away = 1;
printf("Хозяева %d, гости %d\n", away, home);Выведется:
Хозяева 1, гости 2Пробелы в форматной строке тоже важны. printf выводит её в точности как написано, поэтому "Счёт:%d" выведет Счёт:3, а "Счёт: %d" — Счёт: 3.
Число спецификаторов формата должно совпадать с числом значений. Если значения не хватает, компилятор сообщает more '%' conversions than data arguments: заменителей больше, чем значений. Если значение лишнее, он сообщает data argument not used by format string.
Задание
- 1
Ниже выведите счёт одним
printfс двумя%d. Возьмите числа из переменныхhomeиaway:Счёт: 3:1 - 2
На следующей строке выведите такой текст. Используйте один
printfс тремя значениями:minute,homeиaway. Не пишите числа в тексте:На 90-й минуте: 3:1 - 3
Наконец, выведите число голов в виде вычисления. Третье значение —
home + away:Голов: 3 + 1 = 4