C: Сравнение двух длинных целых (очень странно) - PullRequest
1 голос
/ 20 марта 2010

У меня следующая ситуация (unix):

x is a long and has value 300
y is a long and has value 50000

if (x <= y) printf("Correct.");
if (x > y) printf("Ouch.");

Теперь я всегда получаю "Ой". Это означает, что программа постоянно говорит мне, что 300 больше, чем 50000!

Это снова работает только тогда, когда я

if ((int)x <=(int) y) printf("Correct.");
if ((int)x > (int)y) printf("Ouch.");

Так что не так с операторами сравнения?

1 Ответ

1 голос
/ 20 марта 2010

Я нашел ошибку.Он использовал sscanf (...% d) вместо sscanf (...% ld).:( Спасибо @ Zan Lynx за подсказку и спасибо всем вам!

...