标题:小白请教,谢谢。
只看楼主
chwn1985
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2019-12-6
结帖率:100%
 问题点数:0 回复次数:2 
小白请教,谢谢。
请教各位老师。
本人小白,刚开始自学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;
}
搜索更多相关主题的帖子: while 输出 int 停止 printf 
2019-12-06 14:30
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
因为
    while (b != a)
    {
        if (b > a)   printf("您猜大了");          //猜错的情况下输出的结果
        else if (b < a)  printf("您猜小了");
        c++;
    }
是个死循环
2019-12-06 14:42
chwn1985
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2019-12-6
得分:0 
回复 2楼 rjsp
对不住,浪费您时间了。
对比其他类似代码,找到问题了。
感谢。
2019-12-06 14:59



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-498244-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.475517 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved