读书人

有个求绝对值的有关问题,百思不得其解

发布时间: 2012-02-13 17:20:26 作者: rapoo

有个求绝对值的问题,百思不得其解
计算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,
你输的数据超过范围了

读书人网 >C++

热点推荐