C语言中 printf 的一个小问题

来源:百度知道 编辑:UC知道 时间:2024/05/16 17:55:33
简化了就是:
#include <stdio.h>
long v, u;
void main()
{
v=1;
u=1;
printf("%d/%d\n",v,u);
}
为什么运行结果是 1/0,而不是1/1?
的确是与输入输出格式有关。若输入格式不变,怎么避免出现这类问题?多谢各位。总算明白了。

%d/%d
输出格式
由于输出格式不对应
还有tc本来就漏洞百出
主要原因 c语言对内存访问的不够严谨

你再试试看 什么编译器啊? 应该就是1/1啊

没有道理,不是这点代码的问题!

你输入的格式发生了错误

这样改过来:
#include <stdio.h>
long v, u;
void main()
{
v=1;
u=1;
printf("%d/",v);
printf("%d\n",u);
}
运行结果就是1/1

建议你换用VC++:

我用VC++6.0调试的结果是1/1

TC在比VC差远了

建议,把long改成int,因为long要分配8个字节,TC可能运行比较吃力,而int只要4个。