aristom, ну вот это конкретно выражение:
(y[i]-y[i+1])*x0+(x[i+1]-x[i])*y0+(x[i]*y[i+1]-x[i+1]*y[i]);
откуда Вы его взяли? мне вот например не очевидно ни разу. а т.к. не работает, по вашим собственным словам, то оно еще и неправильное
Добавлено через 6 минут
aristom, а хотя понял, прошу прощения, это Вы просто точку подставили в уравнение прямой

мне-то все какое-то векторное произведение мерещилось...
а координаты точек целочисленные?