Оператор остатка от деления
Часть раздела Основы путешествия по 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Почему? Делитель укладывается ноль раз, поэтому всё делимое является остатком.
Задание
НовичокНапишите код, который инициализирует три переменные, a (int), b (double) и c (int) значениями 9, 2.6 и 11 (соответственно).
После этого инициализируйте следующие переменные:
d (int), которая будет содержать результатaпо модулю2e (int), которая будет содержать результатaпо модулю3f (double), которая будет содержать результатbпо модулю1.5g (double), которая будет содержать результатbпо модулю3.9h (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;
}В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Операторы. Часть 1
Арифметические операторыОператор остатка от деленияИнкремент и декрементПостфиксный инкремент и декрементСокращенные арифметические операцииОператоры сравненияСравнение строк7Основы ввода-вывода
Оператор coutОператор cinВвод строкПовторение — До 120Повторение — Истина или ложь3Переменные. Часть 2
Объявление типовСоглашения об именованииПовторение: инициализация переменныхПриведение типов. Часть 1Приведение типов. Часть 26Принятие решений
Оператор ifКонструкция if - elseОператор switchУсловный операторПовторение: if - elseВложенный if - else