C:比较两个长整数(非常奇怪)

时间:2010-03-20 15:33:42

标签: c comparison integer

我有以下情况(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 个答案:

答案 0 :(得分:1)

我发现了错误。它使用sscanf(...%d)而不是sscanf(...%ld)。 :( 谢谢@Zan Lynx的提示并感谢你们所有人!