- Функция printf
- Выводимые типы
- Модификаторы длины
- Ширина поля вывода
- Точность вывода действительных чисел
- Вывод целых чисел со знаком +/-
- Вывести ответ с заданной точностью
- Вывод в языке C++ через cout
- Использование объекта cout
- Задание ширины поля вывода
- Вывод действительных чисел
- BestProg
- Числа с фиксированной точностью. Класс Decimal
- Содержание
Функция printf
Для вывода данных в языке C используется функция printf . Для использования этой функции необходимо подключить заголовочный файл stdio.h :
Если вы пишете на C++, то лучше подключать файл cstdio :
Функция printf получает один или более аргументов. Первый аргумент — строка, которую нужно вывести. Например, если нужно просто вывести какой-то текст, то можно написать так:
Символ ‘\n’ в конце вывода означает символ перехода на новую строку.
Если нужно вывести значения какой-то переменной, то в форматной строке вместо этой переменной указывается специальное выражение, начинающееся с символа «%». Например, для вывода целого числа типа int указывается строка «%d». Сами переменные указываются после форматной строки, следующими параметрами, передаваемыми функции printf .
Например, чтобы напечатать значения переменных a и b типа int через пробел можно использовать следующую функцию:
Выводимые типы
Перечислим разные типы данных, которые можно выводить при помощи функции printf и соответствующие им форматные строки.
%d или %i | Выводится целое число (значение типа int) в десятичной системе счисления. Для вывода значений типа short int используется %hd, long int — %ld, long long int — %lld. |
%u | Выводится беззнаковое целое число (значение типа unsigned int) в десятичной системе счисления. Для вывода значений типа unsigned short используется %hu, unsigned long — %lu, unsigned long long — %llu. |
%e | Выводится значение типа double в экспоненциальной форме, например, число 123.456 будет выведено в виде 1.234560e+002. Для вывода значения типа double также используется %le, для вывода long double — %Le (в Windows может не работать). |
%f | Выводится значение типа double с фиксированной точкой. Например, число 1e20 будет выведено, как 10000000000.000000. Для вывода значения типа double также используется %lf, для вывода long double — %Lf (в Windows может не работать). |
%g | Значение типа double выводится либо с фиксированной точкой, либо с плавающей точкой, в зависимости от величины числа. Аналогично используется %lg для double и %Lg для long double. |
%c | Выводится один символ (значение типа char). |
s | выводится содержимое C-строки. В качестве параметра передается указатель char * или массив символов char[]. |
%% | Вывести один символ %, никакого значения переменной при этом не передается. |
Значения целых чисел также можно выводить в восьмеричной или шестнадцатеричной системах счисления.
Обратите внимание, переменную типа float вывести при помощи функции printf нельзя (можно привести значение типа float к типу double и вывести его).
В операционной системе Windows не рекомендуется использовать тип long double.
Модификаторы длины
Эти модификаторы пишутся между знаком % и символом, обозначающим тип. Например, %lld. Эти модификаторы используются для того, чтобы вывести значения типов short int, long int , long double и т.д. и уже упоминались раньше.
hh | Используется для значения типа char вместе с символами d, i, u для вывода в виде десятичного числа, соотвветствующего его ASCII-коду. |
h | Используется для значения типа short int или unsigned short int вместе с модификаторами d, i, u. |
l | |
ll | Используется для значения типа long long int или unsigned long long int вместе с модификаторами d, i, u. |
L | Используется для значения типа long double вместе с модификаторами e, f, g. Не следует использовать в Windows. |
Ширина поля вывода
После знака % можно задать ширину поля для вывода в виде целого числа (не начинающегося с нуля). В этом случае число вывод этого числа будет занимать указанное число символов. Если в числе меньше цифр, чем заданная ширина поля вывода, то перед числом (слева) выводятся пробелы. Если же в числе больше цифр, чем ширина поля, то выводятся все цифры (то есть выводится больше цифр, чем вся ширина поля, поле расширяется, чтобы вывести все символы).
Если перед шириной поля поставить цифру 0, например, «%010d», то число будет дополняться слева не пробелами, а нулями. Это удобно, например, для вывода времени в формате hh:mm, что можно сделать, например, так:
printf(«%02d:%02d», h, m);
Если перед шириной поля поставить знак «-«, то число будет дополняться пробелами не слева, а справа (сначала выводится число, потом — дополнительные пробелы до заполнения всего поля).
Также вместо ширины поля вывода можно указать символ «*» (звездочка), тогда значение ширины поля вывода нужно передать в качестве дополнительного параметра. Например, запись:
означает вывести значение переменной a используя поле шириной n символов.
Точность вывода действительных чисел
По умолчанию действительные числа выводятся с 6 знаками после точки, при этом числа в экспоненциальной форме выводятся в виде одной цифры, точки и 6 цифр после точки (и показателя степени).
Для изменения точности вывода действительных чисел в форматной строке указывается символ точки (‘.’) и после нее число — количество выводимых знаков после точки. Например, так:
Вывод целых чисел со знаком +/-
Если при выводе целого числа в форматной строке задать символ «+», то положительные числа будут выводиться с обязательным знаком «+» перед ними.
Большинство перечисленных выше параметров комбинируются друг с другом. Например, такая строка:
означает вывод числа типа long long, со знаком «+» или «-» перед числом, с добавлением нулей таким образом, что общее число выводимых символов будет не меньше 20.
Источник
Вывести ответ с заданной точностью
Привет! Зачастил я тут ;(
В общем, не могли бы помочь?
Требуется сделать вывод ответа с точностью до 10^(-9), например:
Единственное, что придумал:
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Вывести число e с заданной точностью
Выведите в выходной файл округленное до n знаков после десятичной точки число E. В данной задаче.
Вывести значение бесконечной суммы с заданной точностью ε
Помогите найти ошибку в решении( Вывести значение бесконечной суммы ((-2)^i)/(i!) с заданной.
Вывести число с заданной точностью знаков
Никак не получается нормально вывести число с точностью, допустим 10 знаком после запятой, но при.
Так всё правильно. 4/1000 = 0.004, что в свою очередь не равно нулю.
Вычислить с заданной точностью, вывести количество итераций
Даны действительные числа x, ε (x не равно 0, ε>0). Вычислить с точностью ε, в конце надо.
Вычислить сумму ряда и вывести количество итераций с заданной точностью
в общем: 20 членов ряда сумма=1-3х^2+5х^4-7х^6+9х^8. и тд. х=1/2, эпселент=0.0001
Найти сумму с заданной точностью точностью E
Кто-нибудь помогите,а то сижу целый день уже и не могу понять как делать.
Вывести ответ «Да», если все цифры четные, и ответ «Нет» в остальных случаях.
С клавиатуры вводится трёхзначное число. Нужно вывести ответ «Да», если все его цифры четные, и.
Источник
Вывод в языке C++ через cout
Использование объекта cout
Для стандартного вывода (вывода на экран) в языке C++ используется объект cout и операторы » endl . Приведем примеры использования обоих способов для вывода значений переменных в отдельных строках:
cout cout можно выводить все стандартные типы данных — целые и действительные числа, символы, строки (как C-строки, так и объекты string ), заботиться о задании типов данных при этом не нужно, компилятор автоматически распознает необходимые типы.
Для использования стандартного ввода-вывода в языке C++ необходимо подключить заголовочный файл iostream :
Задание ширины поля вывода
Есть два способа управления выводом — через вызовы метода объекта cout (например, cout.width(20) ) или при помощи «манипуляторов» ( cout ).
Второй способ удобней, поэтому рассмотрим его. Для использования манипуляторов необходимо подключить заголовочный файл iomanip :
Для задания ширины поля вывода одного значения используется манипулятор setw с одним параметром — шириной поля вывода. Например:
cout setw влияет только на значение ширины поля вывода для следующего выводимого значения, если нужно задать значение ширины поля вывода для двух чисел, то это нужно делать перед выводом каждого значения.
Манипулятор setfill с одним параметром типа char позволяет задать символ-«заполнитель», который будет использоваться вместо пробела для заполнения поля. Например, вывести время в формате HH:MM (ровно по две цифры для вывода часов и минут) можно следующим образом:
cout setfill действует постоянно (до следующего вызова setfill ), не нужно устанавливать его перед выводом каждого значения.
Также как и в языке C можно задавать тип выравнивания внутри поля. Выравнивание бывает левым, правым и внутренним. Внутреннее выравнивание означает, что сначала выводится знак числа (если число отрицательное), затем — пробелы, затем — цифры числа. Для задания выравнивания используются манипуляторы left , right , internal .
Примеры использования различных типов выравнивания:
Пример кода | Вывод программы |