为什么程序最后输入y后不能继续运行

#include <stdio.h>
int main()
{
int nmagicnumber=6;
int nplayerinput=-1 ;
int nresult=-1;
int ncount=0;
int maxguesstime=-2;
char cchoice;
bool bstopgame=false;

while(bstopgame==false)
{
printf("请输入想玩几次\n");
scanf("%d",&maxguesstime);
printf("猜数游戏:输入一个0到100的数\n");
while(nresult!=0 && ncount<maxguesstime)
{
    ncount=ncount+1;
    scanf("%d",&nplayerinput);
    if(nplayerinput>nmagicnumber)
    {
    nresult=1;
    printf("输入较大");
    }
    if(nplayerinput==nmagicnumber)
    {
        nresult=0;
    printf("输入正确"); 
    } 
    if(nplayerinput<nmagicnumber)
    {
    nresult=-1;
    printf("输入较小");    
    }
}
printf("是否继续游戏,若是输入y,否则输入n");
scanf("%c",&cchoice);
if(cchoice!='y')
bstopgame=true;
else
{
    bstopgame=false;
    nresult=-1;
    ncount=0;
}}

return 0;}

scanf前加一句getchar();才行。不然用%c会自动接收之前scanf输入时你敲的回车键

试试把scanf那行换成这个?
cchoice=getchar();