Menu
Coddy logo textTech

Оператор остатка от деления

Часть раздела Основы путешествия по C++ на Coddy — урок 17 из 74.

Оператор остатка от деления % возвращает остаток от деления. В C++ он используется со следующим простым синтаксисом:

result = dividend % divisor;
  • dividend: Число, которое делят.
  • divisor: Число, на которое делят делимое.
  • result: Остаток от деления.

Например:

result = 10 % 3;

Здесь 10 делится на 3. 3 входит в 10 три раза с остатком 1. Таким образом, result будет равен 1.

Обычно взятие по модулю используется для проверки того, является ли число четным или нечетным:

  • Если число четное, при делении его на 2 остаток будет равен 0.
  • Если число нечетное, при делении его на 2 остаток будет равен 1.

При работе с числами с плавающей запятой (doubles) в C++ вы не можете использовать оператор остатка от деления % напрямую. Вместо этого вам нужно использовать функцию fmod() из библиотеки <cmath>. Она работает аналогично оператору остатка, но сохраняет десятичную точность. Например:

#include <cmath>

double result = fmod(5.2, 2.0);
// result равен 1.2

Вот как это работает: 2.0 входит в 5.2 дважды (4.0), и остаток составляет 1.2 (5.2 - 4.0 = 1.2).

Ещё один пример:

double result = fmod(7.8, 3.5);
// результат равен 0.8

Когда делитель больше делимого, результат равен делимому. Это относится как к %, так и к fmod().

5 % 10 = 5
3 % 7 = 3
fmod(2.5, 8.0) = 2.5

Почему? Делитель укладывается ноль раз, поэтому всё делимое является остатком.

challenge icon

Задание

Новичок

Напишите код, который инициализирует три переменные, a (int), b (double) и c (int) значениями 9, 2.6 и 11 (соответственно).

После этого инициализируйте следующие переменные:

  • d (int), которая будет содержать результат a по модулю 2 
  • e (int), которая будет содержать результат a по модулю 3
  • f (double), которая будет содержать результат b по модулю 1.5
  • g (double), которая будет содержать результат b по модулю 3.9
  • h (int), которая будет содержать результат c по модулю 10

Посмотрите на результат и увидите, как различные делимые и делители влияют на результат.

Шпаргалка

Оператор остатка от деления % возвращает остаток от деления:

result = dividend % divisor;

Пример:

result = 10 % 3;  // результат равен 1

Типичный вариант использования — проверка числа на четность или нечетность:

  • Четные числа: number % 2 == 0
  • Нечетные числа: number % 2 == 1

Для чисел с плавающей запятой используйте fmod() из <cmath>:

#include <cmath>

double result = fmod(5.2, 2.0);  // результат равен 1.2
double result2 = fmod(7.8, 3.5); // результат2 равен 0.8

Когда делитель больше делимого, результат равен делимому. Это относится как к %, так и к fmod().

Попробуйте сами

#include <iostream>
#include <cmath>

int main() {
    // Введите ваш код ниже
    
    
    // Не изменяйте строку ниже
    std::cout << "a = " << a << std::endl;
    std::cout << "b = " << b << std::endl;
    std::cout << "c = " << c << std::endl;
    std::cout << "d = " << d << std::endl;
    std::cout << "e = " << e << std::endl;
    std::cout << "f = " << f << std::endl;
    std::cout << "g = " << g << std::endl;
    std::cout << "h = " << h << std::endl;
    return 0;
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Основы