Спецификаторы формата

Вывод целых чисел:

спецификатор для чего
%d для вывода целых чисел в десятичной форме
%u для вывода целых чисел в десятичной форме без знака
для вывода целых чисел без знака в восьмеричной форме
для вывода целых чисел без знака в шестнадцатеричном формате

 

Например:

int a = 16;

printf ("%d %o %x",a,a,a); // Вывод на экран: 16 10 20

Т.е. принцип этой функции заключается в следующем: в кавычках пишите нужные спецификаторы формата (ровно столько, сколько нужно вывести переменных); далее после кавычек ставите запятую и перечисляете, так же через запятую, все переменные для вывода в том порядке, в каком вы выставили спецификаторы формата.

Вывод вещественных чисел:

спецификатор для чего
%f для вывода вещественных чисел в обычной форме
%e для вывода вещественных чисел в экспоненциальной форме

 

Например:

double a = 16;

printf ("%f %e",a,a); // Вывод на экран: 16.000000 1.600000е+01

Число (в экспоненциальной форме): 1.600000е+01 означает всего лишь 1.6 * 10 1

После написания знака (%) можно сразу же указать количество выводимых знаков вещественной составляющей числа.

double a = 16;

printf ("%.3f %.1e",a,a); // Вывод на экран: 16.000 1.6е+01

Управляющие последовательности выводом:

'\n' перевод на новую строку

'\t' табуляция

'\a' сигнал

'\r' курсор в начало строки возвращается

'\'' вывод одиночной кавычки

'\"' вывод двойной кавычки

'\\' вывод косой черты

Примеры с бинарными арифметическими операциями переменных с разным типом данных.

#include <conio.h>

#include <stdio.h>

int main(int argc, char* argv[])

{ int a = 5; // 2 байта

float b = 3; // 4 байта

double c = 2; // 8 байт

char d = 'a'; // 1 байт

printf ("%d\n",sizeof(a+b)); /* 4 байта, следовательно тип float */

printf ("%d\n",sizeof(b+c)); /* 8 байт, следовательно тип double */

printf ("%d\n",sizeof(a+d)); /* 2 байта, следовательно тип int */

getch();

return 0;

}

Функция sizeof()

Функция sizeof() возвращает количество байт, которые память выделяет под переменную. При сложении переменных разных типов, при выходе получается переменная большего из типов. Для переменных типа char: символы, которые она хранит, имеют целочисленный код, поэтому при сложении ни каких проблем не возникает.

Операция - нахождение остатка:

int a = 5, b = 2;

a = a % b; // Значение а будет равно 1

Т.е. происходит обычное деление, только результатом будет остаток от деления.

Функция scanf().

В языке Си кроме функции вывода printf(), существует так же функция scanf() для ввода данных.

Например:

int i;

scanf("%d", &i);

В двойных кавычках записывается спецификатор формата во второй части функции записываем знак (&)-этот знак означает взятие адреса.

Мы должны записывать введенное значение не куда-то там, а именно по адресу, по которому находится наша переменная.