C语言scanf()返回值,为什么我输入非数字会死循环,不是又提醒再一次输入了吗

如题所述

逻辑控制有误。scanf返回正确接收数据的个数,出错时返回负数。你输入一个非数字m就是0。而m==0使while无限循环——因为那个非数字符号在输入缓冲区里未被取走,所以while中的scanf碰到它又使m==0……
温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-01-25
在printf前加上fflush(stdin);清除缓存区,望采纳!!!
相似回答