有个求绝对值的问题,百思不得其解
计算x的绝对值
#include <stdio.h>
#include <conio.h>
void main(void)
{
int x,y;
clrscr();
printf( "\n please input a number: ");
scanf( "%d ",&x);
if(x <0)y=-x;
else y=x;
printf( "x=%-6d,y=%d ",x,y);
getch();
}
这个程序很简单,但是很奇怪,我输入123,1234,12345的时候都显示对的,但是当我输入123456的时候,却显示x=-7616 ,y=7616.这怎么理解????我用的是turbo c. 而且我试了,不是x=%-6d的问题.请高手解释下吧,谢了!
[解决办法]
在C语言(16位),int 范围只有 -32768 --- +32767,
你输的数据超过范围了