Тренировочные задания: Форматированный ввод-вывод
Десять задач на форматирование: ширина поля, точность, флаги и правильные спецификаторы ввода-вывода. Все задачи решаются без использования циклов и условий.
Задача 1. Ширина поля
Выведите число 42 в поле шириной 8 символов сначала по правому краю, затем по левому. Обрамите вертикальными чертами, чтобы видеть границы.
Пример вывода:
| 42|
|42 |
Решение
#include <stdio.h>
int main(void)
{
printf("|%8d|\n", 42);
printf("|%-8d|\n", 42);
return 0;
}
Задача 2. Точность
Выведите число pi = 3.14159265 с точностью 2, 4 и 6 знаков после точки.
Пример вывода:
3.14
3.1416
3.141593
Решение
#include <stdio.h>
int main(void)
{
double pi = 3.14159265;
printf("%.2f\n", pi);
printf("%.4f\n", pi);
printf("%.6f\n", pi);
return 0;
}
Задача 3. Нули слева
Выведите число 42 в поле шириной 6 символов, дополнив его нулями.
Пример вывода:
000042
Решение
#include <stdio.h>
int main(void)
{
printf("%06d\n", 42);
return 0;
}
Задача 4. Знак числа
Считайте целое число и выведите его со знаком: у положительного должен печататься плюс.
Пример ввода:
5
Пример вывода:
+5
Решение
#include <stdio.h>
int main(void)
{
int x;
scanf("%d", &x);
printf("%+d\n", x);
return 0;
}
Задача 5. Проценты
Выведите долю 0.2567 в процентах: один знак после точки и символ процента.
Пример вывода:
25.7%
Решение
#include <stdio.h>
int main(void)
{
double part = 0.2567;
printf("%.1f%%\n", part * 100); /* %% — печатает один знак процента */
return 0;
}
Задача 6. Шестнадцатеричный вид
Выведите число 255 в шестнадцатеричном виде: с префиксом 0x и без него.
Пример вывода:
0xff ff
Решение
#include <stdio.h>
int main(void)
{
int n = 255;
printf("%#x %x\n", n, n);
return 0;
}
Задача 7. Строка отчёта
Выведите одну строку отчёта: номер позиции 7 в поле шириной 4 по левому краю и сумму 1234.5 в поле шириной 8 с двумя знаками после точки.
Пример вывода:
7 1234.50
Решение
#include <stdio.h>
int main(void)
{
printf("%-4d%8.2f\n", 7, 1234.5);
return 0;
}
Задача 8. Квадрат числа
Считайте дробное число и выведите его квадрат с точностью 3 знака. Обратите внимание на %lf при вводе.
Пример ввода:
1.5
Пример вывода:
2.250
Решение
#include <stdio.h>
int main(void)
{
double x;
scanf("%lf", &x);
printf("%.3f\n", x * x);
return 0;
}
Задача 9. Три вида одного числа
Для числа 3.7 выведите в одну строку: целую часть, дробную часть с 3 знаками и само число с 1 знаком.
Пример вывода:
3 0.700 3.7
Решение
#include <stdio.h>
int main(void)
{
double x = 3.7;
int whole = (int)x;
printf("%d %.3f %.1f\n", whole, x - whole, x);
return 0;
}
Задача 10. Ширина и точность вместе
Выведите число 3.14159 в поле шириной 8 с двумя знаками после точки, обрамив вертикальными чертами.
Пример вывода:
| 3.14|
Решение
#include <stdio.h>
int main(void)
{
printf("|%8.2f|\n", 3.14159);
return 0;
}