c语言输入输出问题

来源:百度知道 编辑:UC知道 时间:2024/05/26 20:51:15
下面一段程序:
void main(void)
{
int i;
printf("qingshuru1geshu:");
scanf("%d",&i);
printf("%d",i);
}
我要问的是,如果在提示下输入一个字符(如a)时,输出为一个很大的负数,这个数是怎么来的?谢谢
hurrytttt:
你说的很对,我也早发现了,不论输入什么字符输出数都是一样的!可是我就是不知道它是怎么来的!!!

你所讲的输出一个很大的负数,那个应该是一个代码来的,讲给你听这个程序没有语法问题,但是在运行时出现了逻辑上的错误,
(注:你尝试一下,无论你输入什么字符,它输出都是这样一的代码地)

这个数字是因为scanf没有正确转换一个数,而原来的i是随机的数值,所以scanf事实上没有对i作任何修改。所以打印出来的就是乱数了,具体是正数还是负数,不一定,随机的。

建议判断scanf的返回值,以便确定是否将i正确读入。

如果这个负数超过了-63564,将会出现溢出,出现的结果可能为-63564,或者不定数。

我觉得可能是你格式不匹配!因为你定义的是个整形,但是你输入个字符型,它可能就会出错