do-while程序运行出错,找不到原因

以下在win10下用code block编写的程序
每到输入参数按enter后,程序就出错
#include
#include
#include

int main(void)
{
int s=0;
int c=3;
int i=0;
int correct=0;
char play_again='Y';
do
{
s=time(NULL);
i=0;
srand(s);

while(c<20,correct<7)
{
    for(;i<c;i++)
       printf("%d",rand()%10);

    c+= correct++%3==0;//每执行3次 C加1
}
printf("\nDo you want to try again?(y/n)");
//fflush(stdin);
scanf(" %c",play_again);

}while(toupper(play_again)=='Y');
return 0;

}

把这一句

 scanf(" %c",play_again);

改成

 scanf("%c", &play_again);

scanf()函数是格式化输入函数,它从标准输入设备(键盘) 读取输入的信息。

其调用格式为: scanf("<格式化字符串>",<地址表>);