注册 登录
编程论坛 C语言论坛

小白请教,谢谢。

chwn1985 发布于 2019-12-06 14:30, 1379 次点击
请教各位老师。
本人小白,刚开始自学c语言,用的是visual 2013。
学习过程中,有个问题:
while函数一直循环,没办法停止。
下面代码是一个猜数游戏。要是猜错了,程序一直提示“猜大了”或者“猜小了”,不能停止。
尝试过用fflush和getchar(),都没效果。
这是什么原因。
感谢
程序代码:
int main(void)
{
    int a, b, c;                                   //定义三个变量a,b,c,分别代表随机数,用户输入数和计数器
    srand((unsigned)time(NULL));
    a = rand() % 9 + 1;                               //取值范围在10以内
    printf("请开始猜数\n");                           //用户输入
    scanf_s("%d", &b);
    c = 1;                                        //设定一个计数器
    while (b != a)
    {
        if (b > a)   printf("您猜大了");          //猜错的情况下输出的结果
        else if (b < a)  printf("您猜小了");
        c++;
    }
    printf("您猜测的数值是%d", b);                  //输出正确结果
    printf("您的猜测次数是%d", c);                  //输出猜测次数
    return 0;
}
2 回复
#2
rjsp2019-12-06 14:42
因为
    while (b != a)
    {
        if (b > a)   printf("您猜大了");          //猜错的情况下输出的结果
        else if (b < a)  printf("您猜小了");
        c++;
    }
是个死循环
#3
chwn19852019-12-06 14:59
回复 2楼 rjsp
对不住,浪费您时间了。
对比其他类似代码,找到问题了。
感谢。
1