Можно использовать или %d, или %i для отображения знакового десятичного числа. Эти форматы спецификаторов эквивалентны и присутствуют оба по историческим причинам.
Для вывода беззнакового значения надо использовать %u.
Спецификатор формата %f позволяет отображать числа с плавающей точкой.
Спецификаторы %е и %Е сообщают printf() о необходимости вывода вещественного числа в научной нотации. Числа, представляющиеся в научной нотации, имеют следующий вид:
x.ddddd Е+/-yy
Если необходимо вывести символ «E», используйте %Е, иначе используйте %е.
Можно указать функции printf() использовать %f или %е, используя спецификаторы формата %g или %G. В результате этого printf() выбирает спецификатор формата, приводящий к более короткой форме выдачи информации. Если необходимо, чтобы в научной нотации присутствовало «Е», используйте %G, иначе используйте %g. Следующая программа демонстрирует эффект использования спецификатора формата %g:
#include <stdio.h>
int main(void)
{
double f;
for(f=1.0; f<1.0e+10; f=f*10)
printf ("%g", f);
return 0;
}
В результате ее работы получаем:
1 10 100 1000 10000 100000 1e+06 1e+07 1е+08 1е+09
Можно отображать беззнаковые целые в восьмеричном или шестнадцатиричном форматах, используя %о и %х соответственно. Поскольку шестнадцатиричные числа используют буквы от А до F для представления чисел от 10 до 15, следует использовать спецификатор формата %X для вывода прописных букв, а %х - для строчных, как показано ниже:
#include <stdio.h>
int main(void)
{
unsigned num;
for(num=0; num<255; num++)
{
printf("%o ", num);
printf("%x", num);
printf("%X", num);
}
return 0;