деление на ноль не гарантирует, что каждый раз, когда программа выдаст вам ошибку времени выполнения.вот почему деление на ноль является неопределенным поведением.
в качестве стандартных состояний языка Си;
Результатом оператора / является частное от деления первого операнда на второй;результат оператора% - остаток.В обеих операциях, если значение второго операнда равно нулю, поведение не определено.
как для C ++ (03-5.6.4);
Двоичный файлОператор / возвращает частное, а бинарный оператор% - остаток от деления первого выражения на второе.Если второй операнд / или% равен нулю, поведение не определено;в противном случае (a / b) * b + a% b равно a.Если оба операнда неотрицательны, то остаток неотрицателен;если нет, знак остатка определяется реализацией