C/C++

C++ неправильно делит!

 cout
Stas Volskii
Stas Volskii
7 458
Абсолютно правильно делит - о чём мы уже говорили.
В С++ при целочисленном делении используется округление к нулю: дробная часть вещественного деления просто отбрасывается.

Округление к минус бесконечности в Python и округление к 0 в C++ - совершенно равноценные разные варианты целочисленного деления. И тебе придётся просто запоминать, в каком из языков какой из вариантов используется.
Андрей Палыч
Андрей Палыч
86 972
Лучший ответ
Stas Volskii Почему округление с отбрасыванием дробной части? это же не по правилам математики
Вероятно ошибочно полагать что округление к ближайшему - единственно верное в математике.
MK
Magamed Khamdiev
51 416
>>C++ неправильно делит!
Это тупое утверждение легко опровергается элементарным тестом.
В C++ операция деления между целочисленными операндами производит операцию целочисленного деления, которая отбрасывает дробную часть результата и возвращает только целую часть.

Таким образом, в первом примере (-7 / 2) результатом будет -3, потому что -3 * 2 = -6, что наиболее близко к -7 без превышения его значения. Во втором примере (7 / 2) результатом будет 3, потому что 3 * 2 = 6, что наиболее близко к 7 без превышения его значения.

Если вы хотите выполнить деление и получить результат в виде десятичной дроби, необходимо использовать тип данных с плавающей запятой, например:
 cout
Должен, но вот так.... Надо это помнить и вычитать единицу. Будет -4 и в остатке 1, что правильно с точки зрения математики.
Андрей Суроп
Андрей Суроп
2 620
Stas Volskii с точки зрения математики будет -4
юзай деление с плавающей точкой и будет счастье
 cout
Юра Мучичка
Юра Мучичка
1 242
двоешник значит