如何在C中输入/输出和比较“long long”变量?
问题描述:
我用C写了一个程序。我的目的是测试“long long”变量是如何工作的。但是结果令我感到不安。
我的OS:WinXP的
我的编译器:TCC(微型C编译器)http://bellard.org/tcc/版本0.9.25
========我的源代码========如何在C中输入/输出和比较“long long”变量?
# include "stdio.h"
# include "math.h"
void main() {
long long n,i;
scanf("%lld",&n);
i=42;
printf("\nn=%lld",n);
printf("\ni=%lld",i);
printf("\ni<=n --> %d",i<=n);
return;
}
========源代码=========
运行程序,I输入的终结:
30
然后,输出是:
n=30
i=42
i<=n --> 1
这意味着“我(42)比n(30)小”。为什么?
当我输入一个很长的变量时是否有错误?
你能告诉我正确的方法吗?
感谢您的帮助!
答
你应该叫printf("%I64d", var)
答
首先,写你的main()
作为
int main(void) { /* ... */ }
或者,如
int main(int argc, char *argv) { /* ... */ }
然后,也许你需要一个更好的编译。
如果您将n设置为30而不是扫描它,会发生什么情况? – 2010-12-09 14:05:05
我在我的Linux系统上使用GCC获得预期的“0”结果。也许一些tcc问题? – thkala 2010-12-09 14:08:09
GCC 4.4为我工作。 – birryree 2010-12-09 14:10:10