亦行之 2024-03-22 21:08 采纳率: 34.5%
浏览 1

龟兔赛跑c语言无法得到正确答案

img


#include<stdio.h>
int main()
{
    int x;
    scanf("%d",&x);
    int g=0,t=0,time=0;//跑的距离
    while(time<x){
        time++;//
        g+=3;
        t+=9;
        if(time%10==0){
            if(t>g){
                time+=30;
                g+=30*3;
            }
        }
    } 
    if(g>t){
        printf("@_@ %d",g);
    }else if(g==t){
        printf("-_-");
    }else{
        printf("^_^ %d",t);
    }
    return 0;
}

我的答案是错的 请问我的逻辑哪里有问题呢

  • 写回答

4条回答 默认 最新

  • 码农阿豪@新空间代码工作室 Java领域优质创作者 2024-03-22 21:08
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    这段代码的逻辑问题在于,每跑10秒后就会判断龟和兔子的位置,但是只有在兔子跑的距离大于龟的跑的距离时才会让兔子休息30秒,这会导致兔子和龟子在同一时刻完成比赛时,兔子跑的距离一定会大于龟子跑的距离,因为兔子会先休息30秒,而龟子则会一直跑,这个问题可以通过把判断兔子是否要休息的语句放到每一秒都判断的循环中解决。 修改后的代码:
    #include<stdio.h>
    int main(){
        int x;
        scanf("%d",&x);
        int g=0,t=0,time=0;//跑的距离
        while(time<x){
            time++;
            g+=3;
            t+=9;
            if(time%10==0){
                if(t>g){
                    time+=30;
                    g+=30*3;
                } else {
                    continue; // 兔子不休息,进入下一秒循环
                }
            }
        }
        if(g>t){
            printf("@_@ %d",g);
        } else if(g==t){
            printf("-_-");
        } else{
            printf("^_^ %d",t);
        }
        return 0;
    }
    
    评论

报告相同问题?

问题事件

  • 创建了问题 3月22日

悬赏问题

  • ¥15 is not in the mmseg::model registry。报错,模型注册表找不到自定义模块。
  • ¥15 安装quartus II18.1时弹出此error,怎么解决?
  • ¥15 keil官网下载psn序列号在哪
  • ¥15 想用adb命令做一个通话软件,播放录音
  • ¥30 Pytorch深度学习服务器跑不通问题解决?
  • ¥15 部分客户订单定位有误的问题
  • ¥15 如何在maya程序中利用python编写领子和褶裥的模型的方法
  • ¥15 Bug traq 数据包 大概什么价
  • ¥15 在anaconda上pytorch和paddle paddle下载报错
  • ¥25 自动填写QQ腾讯文档收集表