我只看了主函数,主函数里只有一个输入语句,getchar(),用于录入字符判断是否继续游戏。你输入了Y字母,又按了回车,两个字符都在缓冲区里面,(getchar是可以录入回车符的,scanf不能录入回车符),第一次游戏,getchar录入了Y,游戏继续,缓冲区还剩一个回车符,第二次游戏再次从缓冲区提取字符,就录入了回车符,所以就程序结束了