鱼C论坛

 找回密码
 立即注册
查看: 1477|回复: 6

[已解决]关于二叉树创建的问题 具有大大的疑惑

[复制链接]
发表于 2020-4-6 07:18:40 | 显示全部楼层    本楼为最佳答案   
这个是因为scanf函数的用法理解有偏差。第一种写法,scanf读取%c,即一个char字符。当你输入字符A的时候,敲击了回车,然后scanf将A读取赋值给val,缓冲区剩下回车字符,第二次调用create函数的时候scanf读取%c时读到了回车字符,然后将之赋值给了val,所以就出现了这种情况。
第二种写法,scanf读取%d,即整型数字,第一次输入1回车,scanf读到1赋值给val,缓冲区剩下回车字符,第二次的时候,再次读取%d,遇到回车跳过,等待你输入数字,所以你输入2回车就能正常读到2了。
scanf读取除了%c以外的其他格式,都回将空白符(空格  回车   tab)当做间隔符跳过。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-6 07:25:11 | 显示全部楼层
如果想用scanf读取char,那么应该在scanf后用getchar()清除缓存的回车字符
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-11-4 15:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表