零度非安全 发表于 2014-8-13 16:29:52

新手求助!!!!

请问在任意输入半径时,比如一连串的字母,怎么会得到如下的结果?不是只能输数字才有结果吗??

yvqiang 发表于 2014-8-13 17:24:31

字符也是数字转换显示出来的呀。

破ID 发表于 2014-8-13 17:26:00

字母是用数字来储存的,见ASC码
所以,输入字母会被理解成数字,进行运行
——这是个人理解,有错误的地方,请大牛指正

musilintan 发表于 2014-8-13 17:58:09

出现你这个问题的原因其实是变量r没有进行初始化导致的。在执行scanf函数的时候,当你进行非法输入时,scanf并没有将你输入的字母赋值给变量r。而是让变量r保持了原来的值。因为变量r没有初始化,所以变量r的原值为乱码(极大的数或极小负数)。所以,当你下面将乱码的变量r代入表达式时,就会出现更乱的现象。

零度非安全 发表于 2014-8-13 18:58:46

musilintan 发表于 2014-8-13 17:58
出现你这个问题的原因其实是变量r没有进行初始化导致的。在执行scanf函数的时候,当你进行非法输入时,scan ...

非常的感谢!你的回答让我茅塞顿开!我会继续努力的!

Sunday丶 发表于 2014-8-13 19:02:32

{:1_1:}{:1_1:}
页: [1]
查看完整版本: 新手求助!!!!