Целочисленное деление c: примеры и особенности
Целочисленное деление C (англ. integer division) - это операция деления целых чисел, при которой получается только частное, но не остаток. В языке программирования C для выполнения целочисленного деления используется оператор деления "/", но в отличие от операции деления в арифметике, результатом является только целая часть от деления, а остаток отбрасывается.
Примеры кода:
int a = 10;
int b = 3;
int c = a / b; // результатом будет 3, т.к. 10/3 = 3.333, но остаток отбрасывается
printf("%d", c); // выводит 3 на экран
int d = 13;
int e = 5;
int f = d / e; // результатом будет 2, т.к. 13/5 = 2.6, но остаток отбрасывается
printf("%d", f); // выводит 2 на экран
Важно учитывать, что если в операции целочисленного деления один из операндов имеет отрицательное значение, то результат может отличаться от того, что ожидается. Например:
int g = -10;
int h = 3;
int i = g / h; // может быть как -3, так и -4 в зависимости от компилятора и архитектуры процессора
printf("%d", i); // выводит -3 или -4 на экран в зависимости от результата
Поэтому в случае необходимости выполнения целочисленного деления с отрицательными числами, следует использовать функцию floor() из библиотеки math.h для округления результата в соответствии с математическими правилами. Например:
int j = -10;
int k = 3;
int l = floor((float)j / (float)k); // результатом будет -4, т.к. -10/3 = -3.333, но после округления в меньшую сторону получаем -4
printf("%d", l); // выводит -4 на экран