问题原因

gets后scanf不行是因为gets把回车当做读取结束的标识符,但是并没有读取回车也没有处理回车,这就导致下一步scanf读取到的字符就是回车

解决办法

处理办法是在他们之间加上一个getchar