РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
113 of 815 menu

Функция midpoint

Функция midpoint из заголовка <cmath> вычисляет среднюю точку между двумя числами. В первый параметр мы передаём первое число, а во второй - второе число. Функция возвращает значение, лежащее ровно посередине между ними. Главное преимущество midpoint перед выражением (a + b) / 2 заключается в том, что она не вызывает переполнения при сложении больших чисел и корректно работает с числами разных знаков.

Функция появилась в стандарте C++20 и доступна для типов int, long, long long, unsigned, а также для чисел с плавающей точкой float, double и long double.

Синтаксис

std::midpoint(a, b)

Пример

Давайте найдём середину между числами 10 и 20:

#include <iostream> #include <cmath> using namespace std; int main() { int res = midpoint(10, 20); cout << res << endl; return 0; }

Результат выполнения кода:

15

Пример

Давайте найдём середину между числами с плавающей точкой 1.5 и 4.5:

#include <iostream> #include <cmath> using namespace std; int main() { double res = midpoint(1.5, 4.5); cout << res << endl; return 0; }

Результат выполнения кода:

3

Пример

Давайте найдём середину между числами разных знаков -10 и 10:

#include <iostream> #include <cmath> using namespace std; int main() { int res = midpoint(-10, 10); cout << res << endl; return 0; }

Результат выполнения кода:

0

Пример

Давайте убедимся, что midpoint не вызывает переполнения там, где обычное сложение дало бы неверный результат. Возьмём два больших числа:

#include <iostream> #include <cmath> #include <climits> using namespace std; int main() { int a = INT_MAX; int b = INT_MAX; int res = midpoint(a, b); cout << res << endl; return 0; }

Результат выполнения кода:

2147483647

Смотрите также

  • функция lerp,
    которая выполняет линейную интерполяцию между двумя числами
  • функция round,
    которая округляет число до ближайшего целого
  • функция floor,
    которая округляет число в меньшую сторону
  • функция ceil,
    которая округляет число в большую сторону
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить