朝暮久伴丶 2022-03-08 19:41 采纳率: 66.7%
浏览 22
已结题

各位大佬们,我自己在初学C语言写了个小游戏,但是一直有bug存在,比如连续输入两次13的时候,会有死循环,请问这个代码怎么修正啊?

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int a, b, c;
printf("欢迎来到真心话大冒险,请你输入一个小于40大于0的数字a\n");
scanf("%d", &a);
while(a <= 0 || a >= 40)
{
printf("居然不按游戏规则来,不去工地抬杠可惜了,请重新输入a:\n");
scanf("%d", &a);
}
if (0 < a && a <= 20)
{
printf("接下来你将接受真心话考验,请你输入一个大于40小于100的数字b\n");
scanf("%d", &b);
while(b <= 40 || b >= 100) {
printf("居然不按游戏规则来,不去工地抬杠可惜了,请重新输入b:\n");
}
if (40 <= b && b < 60)

        {
            printf("你觉得我这个游戏好玩吗\n");
        }
        if (60 <= b && b < 100)
        {
            printf("你觉得这个世界上最帅的人是谁\n");

        }
    }
    if (20 < a && a <= 40)
    {
        printf("接下来你将接受大冒险考验,请你输入一个大于40小于100的数字c\n");
        scanf("%d", &c);
        while(c <= 40 || c >= 100)
        {
            printf("居然不按游戏规则来,不去工地抬杠可惜了,请重新输入c:\n");
        }
        if (40 < c && c <= 60)
        {
            printf("请你现场录制一声狗叫给我\n");

        }
        if (60 < c && c < 100)
        {

            printf("请你说出你最满意的部位\n");

        }

    }
return 0;
}
  • 写回答

3条回答 默认 最新

  • 关注

    重新读入b没写scanf语句啊

    
    while(b <= 40 || b >= 100)
            {
                printf("居然不按游戏规则来,不去工地抬杠可惜了,请重新输入b:\n");
            }
    

    修改后:

    img


    完整代码

    #include<stdio.h>
    int main()
    {
        int a, b, c;
        printf("欢迎来到真心话大冒险,请你输入一个小于40大于0的数字a\n");
        scanf("%d", &a);
        while(a <= 0 || a >= 40)
        {
            printf("居然不按游戏规则来,不去工地抬杠可惜了,请重新输入a:\n");
            scanf("%d", &a);
        }
        if (a>0 && a <= 20)
        {
            printf("接下来你将接受真心话考验,请你输入一个大于40小于100的数字b\n");
            scanf("%d", &b);
            while(b <= 40 || b >= 100)
            {
                printf("居然不按游戏规则来,不去工地抬杠可惜了,请重新输入b:\n");
                scanf("%d", &b);
            }
            if (b>=40 && b < 60)
    
            {
                printf("你觉得我这个游戏好玩吗\n");
            }
            if (b>=40 && b < 100)
            {
                printf("你觉得这个世界上最帅的人是谁\n");
    
            }
        }
        if (a>20 && a <= 40)
        {
            printf("接下来你将接受大冒险考验,请你输入一个大于40小于100的数字c\n");
            scanf("%d", &c);
            while(c <= 40 || c >= 100)
            {
                printf("居然不按游戏规则来,不去工地抬杠可惜了,请重新输入c:\n");
                scanf("%d", &c);
            }
            if (40 < c && c <= 60)
            {
                printf("请你现场录制一声狗叫给我\n");
    
            }
            if (60 < c && c < 100)
            {
    
                printf("请你说出你最满意的部位\n");
    
            }
    
        }
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 3月18日
  • 已采纳回答 3月10日
  • 创建了问题 3月8日

悬赏问题

  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)