Почему 0 мод 0 ошибка?

Если я наберу:

int main() { return 0 % 0; }

Я получаю обратно ошибку:

error C2124: divide or mod by zero

В чем причина этого? Разве ответ не ноль?

1

Решение

В математике x mod 0 не определено, следовательно ошибка.

10

Другие решения

Из стандарта C ++, раздел 5.5:

Если во время вычисления выражения результат не определен математически или не находится в диапазоне представляемых математических значений для его типа, поведение не определено. […] Обработка деления на ноль, формирования остатка с использованием делителя на ноль и всех исключений с плавающей запятой варьируется в зависимости от машины и обычно настраивается библиотечной функцией.

Поскольку остаток от деления на ноль математически не определен независимо от делимого числа, ответ не определен в соответствии со стандартом C ++.

3

Функция мода по сути такая же, как и функция целочисленного деления, за исключением того, что она дает вам остаток, а не частное. Вы не можете разделить на ноль …

(Кстати, 0/0 — это даже не бесконечность, а неопределенность.)

2
По вопросам рекламы [email protected]