
Справочная информация. Спецификации строки формата
Строка формата обычно включает флаги, спецификаторы, указание точности и управляющие коды.
Спецификатор |
Тип |
Описание |
%c |
char |
Одиночный символ |
%d (%i) |
int |
Знаковое десятичное целое число |
%e (%E) |
float или double |
Число в формате с плавающей точкой в экспоненциальной форме |
%f |
float или double |
Знаковое десятичное число с дробной частью |
%o |
int |
Беззнаковое восьмеричное целое |
%s |
вектор char |
Последовательность символов (строка) |
%u |
int |
Беззнаковое целое |
%x (%X) |
int |
Беззнаковое шестнадцатеричное целое |
%g (%G) |
float или double |
использует %f или %e по требованию |
%p |
указатель |
Адрес, сохранённый в указателе |
Точность задаётся количеством цифр w для целых и парой w. для чисел с плавающей точкой, где w – общее количество знаков, d – количество цифр в дробной части.
Флаги
Флаг |
Значение |
- |
Прижать влево |
+ |
Всегда печатать знак |
Пробел |
Печатать пробел, если нет знака числа |
0 |
Печатать с ведущими нулями |
# |
Использовать альтернативную форму %#o %#x %#f %#e %#g |
Управляющие коды:
\b backspace (на позицию назад)
\f formfeed (пропуск)
\n new line (новая строка)
\r carriage return (возврат каретки)
\t horizontal tab (горизонтальная табуляция)
\' single quote (одиночный апостроф)
\0 null (пустой символ)
Примеры:
int n = 25;
float x = 2.54;
char c = 'A';
printf("% 5d,%8.1f,_%d \n", n, x, c);// _ _ _25,_ _ _ _ _2.5,_65
printf("%-5d,%8.6f,%#6x \n", n, x, c);// 25_ _ _,2.540000,_ _0x41
printf("%+5d,%4.2e,%c \n", n, x, c); // _ _+25,2.54e+000,A
Задачи для решения
Даны две целых переменных a и b. Обменять их значения.
Дано натуральное число в шестнадцатеричной системе счисления. Напечатайте его значение в десятичной системе счисления.
Дано два целых числа. Напечатайте сумму, разность и произведение данных чисел.
В прямоугольнике даны длины сторон. Вычислите и напечатайте периметр и площадь прямоугольника.
Дано два натуральных числа. Вычислите и напечатайте их частное и остаток от деления.
Дано натуральное двузначное число. Напечатайте сумму его цифр. Например, сумма цифр двузначного числа 92 равна одиннадцати.
Даны целые коэффициенты квадратного уравнения
. Вычислите и напечатайте его дискриминант
.
Целая переменная c должна использоваться как переключатель, т.е. если ее значение равно 0 (выключено), то ей следует присвоить значение 1 (включено), и наоборот. Напишите программу, которая преобразует введенное значение c. Условный оператор не использовать.
Цвета в шестнадцати цветовой палитре делятся на тёмные (с номерами от 0 до 7) и светлые (с номерами от 8 до 15) так, что каждому тёмному цвету соответствует светлый. Например, тёмному цвету 1 соответствует светлый цвет 9, а светлому цвету 14 соответствует тёмный цвет 6. По заданному номеру цвета вычислите номер соответствующего ему цвета.
Дана целая переменная a, не равная нулю. Присвойте ей противоположное значение и напечатайте его. Например, если значение переменной a равно -15, то противоположным значением будет 15.
Вычислите сумму первых n членов натурального ряда чисел.
Вычислите n-ый член арифметической прогрессии по заданному первому члену a и разности d.
Дано натуральное трехзначное число. Напечатайте сумму цифр этого числа.
До 1971 года в Англии в денежной системе использовались следующие единицы: 1 фунт стерлингов = 20 шиллингов; 1 шиллинг = 12 пенсов. “Нищий” в Сити в среднем зарабатывал P пенсов. Сколько это составляет фунтов, шиллингов и пенсов. Например, 512 пенсов составляют 42 шиллинга и 8 пенсов, а 42 шиллинга составляют 2 фунта и 2 шиллинга. Ответом будет 2, 2 и 8.
На 1 января приходится понедельник — первый день недели. От начала года идёт k-ый день. Какой это день недели (указать порядковый номер дня недели)?