发布网友 发布时间:2024-10-03 21:06
共2个回答
热心网友 时间:2024-10-04 04:25
scanf中,除了 %指定的数据,其他字符需要原样输入
scanf("%d%d\n",&n,&m), 意思就是先输入两个整数,再输入一个'\n',
但是在正常输入的时候, 回车被当作输入结束的标记,并没有被scanf收到,
于是scanf认为输入数据不全,继续等待.
当再次输入其他字符, scanf检测到输入的字符和'\n'不匹配,于是返回.
其实你不需要再输入两个数字,只要再输入任何一个不是空格的字符就可以了. 比如在第二个数字后面带个逗号.
但是这样的话,会影响下一次的输入, 因为那个逗号好没读走.
正确的方法是不要加最后那个'\n'
热心网友 时间:2024-10-04 04:25
原因在于在scanf中使用\n并不表示要求输入一个回车符,而是指忽略一切空白符,直至下一个非空白符输入