朝暮久伴丶 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 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改
  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持