scanf()会忽略开头的换行符,也就是说在你输入一个数字按下回车后,你的换行符并不会被scanf读取,它仍然在缓存区中,但是gets并不会忽略换行,它会将缓存区中换行符读取并舍弃换成 '\0' 。这就是为什么第二个要加 getchar(),它是为了将第一次scanf()读取数字时将缓存区中的换行取走,避免被gets读取。
吸收回车键