求助C语言数值问题
#include<math.h>#include<conio.h>
#include<stdio.h>
main()
{
long int sum=0;
int a=10000,b=50;
sum=a*b;
printf("%d\n",sum);
getch();
exit(0);
}
打印结果本应是500000,但实际是-24288,哪位帮帮忙解释一下什么原因,谢谢!
----------------解决方案--------------------------------------------------------
VC里调试成功。
[此贴子已经被作者于2006-1-20 14:33:48编辑过]
----------------解决方案--------------------------------------------------------
我是在turboc2里的,怎么弄都不行
----------------解决方案--------------------------------------------------------
#include<math.h>
#include<conio.h>
#include<stdio.h>
main()
{
long int sum=0;
long int a=10000,b=50;
sum=a*b;
printf("%ld\n",sum);
getch();
exit(0);
}
----------------解决方案--------------------------------------------------------
对,应该是PRINTF的问题
----------------解决方案--------------------------------------------------------
谢谢各位帮助!已经解决,是print的问题。
----------------解决方案--------------------------------------------------------
我觉得你是不是应该看看整型变量的范围,如果想得到预期的效果,int应改为long int
这样就对了
----------------解决方案--------------------------------------------------------
还有输出格式应改为%ld,看看对不对
----------------解决方案--------------------------------------------------------
以下是引用kankanba在2006-1-20 14:29:00的发言:
VC里调试成功。
VC 的 int 类型是32位宽。
7楼来了个厉害的新丫头。
----------------解决方案--------------------------------------------------------
7楼说的没错,但上述函数是另一函数的子程序,a,b限定是int ,所以只能在printf上想办法
----------------解决方案--------------------------------------------------------