输入数字和字母实际上都是输入两个字符,只要在输入之后清理一下缓冲就OK了。
在scanf("%c",&f);这行之后加入一句清空输入缓冲区语句
fflush(stdin);
scanf 后面 加个 getc()
或者 直接用 getc
因为你的输入语句是scanf("%c",&f);
所以,你在输入的时候是不是输入一个数据然后按回车??
这个回车符也被系统接收了,所以你等于一次给系统两个数据。这样说你明白了没?
兄弟,这是tc2的一个bug,当两个scanf在在一起是就会有一个scanf“失效”。我曾经也想过很久,最后猜了一个原因:不知道合理不:系统把你前一次的回车认为是字符付给了第二个scanf的变量。后来记得好像验证过确实是这个问题。你感兴趣久验证一下吧。给你个解决这类问题的方法:当有两个或两个以上scanf同时出现时,你在他们后面都写一个空的scanf。也就是比原来的scanf多一倍。