猜数字游戏函数实现部分
代码如下:
void game()
{
int a = 0;
srand(time(NULL));
int ans = (rand())%100+1;
while (1)
{
printf("请输入你要猜的数字:>");
scanf("%d", &a);
if (a>0&&a<100)
{
if (a > ans)
{
printf("猜大了\n");
}
else if (a < ans)
{
printf("猜小了\n");
}
else if (a == ans)
{
printf("猜对了\n");
break;
}
}
else
{
printf("输入错误\n");
}
}
}
如果在scanf处错误输入一个字母 a ,程序会提示输入错误,并且下一次循环到scanf的时候不会停下来等待输入,而是会进入死循环,
循环输出:请输入你要猜的数字:>输入错误\n ,通过监视看到a的值变为了0.
求解答为什么scanf那里不会停下来?
还有输入一个a为什么会导致a被赋值成0?
#include<stdio.h>
int main()
{
int a = 0;
srand(time(NULL));
int ans = (rand())%100+1;
while (1)
{
printf("请输入你要猜的数字:>");
scanf("%d", &a);
if (a>0&&a<100)
{
if (a > ans)
{
printf("猜大了\n");
}
else if (a < ans)
{
printf("猜小了\n");
}
else if (a == ans)
{
printf("猜对了\n");
break;
}
}
else
{
printf("输入错误\n");
}
}
}