Какие значения x и y вызовут сбой некоторых компиляторов Си?
int f(int x, int y) {
return (y==0) ? 0 : (x/y);
}
c
programming-puzzle
division
ugoren
источник
источник
Ответы:
-2147483648 (INT_MIN) и -1
$ gcc -Wall Division.c && ./a.out # => zsh: исключение с плавающей запятой ./a.out
источник
Правильный ответ уже дан, но я сразу подумал о Microsoft Pex .
После добавления вашей головоломки в сайт с песочницей, он находит ответ через несколько секунд, так же, как и ответ eregons. (нажмите спросить Pex)
Примечание: он делает это в C #, но язык не очень актуален.
источник
(x/y)
и знать , чтоINT_MIN
,-1
, и0
т.д., все проблемные случаи для этого выражения, и попытаться перепроектировать способ получения этих значений в момент оценки.