История изменений
Исправление KennyMinigun, (текущая версия) :
devide_by_zero
1. divide
2. Где здесь деление на 0?
return 42/i;
Хардкод, фу!
} else { exit(-1);
Это не деление на ноль!
Предлагаю такой вариант
#include <limits.h>
#define INFINITY INT_MAX
int divide(int numerator, int denominator) {
int sign, result;
if (denominator) {
result = numerator / denominator;
} else {
sign = (numerator > 0) - (numerator < 0);
result = sign * INFINITY;
}
return result;
}
Исходная версия KennyMinigun, :
devide_by_zero
1. divide
2. Где здесь деление на 0?
[code=c]return 42/i;[/code]
Хардкод, фу!
} else { exit(-1);
Это не деление на ноль!
Предлагаю такой вариант
#include <limits.h>
#define INFINITY INT_MAX
int divide(int numerator, int denominator) {
int sign, result;
if (denominator) {
result = numerator / denominator;
} else {
sign = (numerator > 0) - (numerator < 0);
result = sign * INFINITY;
}
return result;
}