c语言新龟兔赛跑

以下是一个使用C语言编写的新的龟兔赛跑游戏:
- #include <stdio.h>
- #include <stdlib.h>
- #include <time.h>
- int main() {
- int distance, turtle_speed, rabbit_speed, turtle_time, rabbit_time, rabbit_lead;
- srand(time(NULL)); // 随机数种子
- // 初始化变量
- distance = 100; // 赛跑距离为100米
- turtle_speed = 1; // 乌龟速度为1米/分钟
- rabbit_speed = 5; // 兔子速度为5米/分钟
- turtle_time = 0; // 乌龟所用时间为0分钟
- rabbit_time = 0; // 兔子所用时间为0分钟
- rabbit_lead = 0; // 兔子领先距离为0米
- printf("新龟兔赛跑游戏\n");
- printf("赛跑距离: %d米\n", distance);
- printf("乌龟速度: %d米/分钟\n", turtle_speed);
- printf("兔子速度: %d米/分钟\n", rabbit_speed);
- printf("开始赛跑!\n");
- // 模拟赛跑过程
- while (distance > 0) {
- // 乌龟前进
- turtle_time += 1; // 乌龟用时加1分钟
- if (turtle_time == 60) { // 乌龟每60分钟走1米
- turtle_time = 0;
- distance--;
- }
- // 兔子前进
- rabbit_time += 1; // 兔子用时加1分钟
- if (rabbit_time == 60) { // 兔子每60分钟走5米
- rabbit_time = 0;
- distance -= rabbit_speed;
- }
- // 判断胜负
- if (distance <= 0) {
- break;
- } else if (distance >= rabbit_speed) { // 如果兔子能够到达终点,则计算领先时间
- rabbit_lead = rabbit_time + (distance / rabbit_speed) * 60 - turtle_time;
- } else { // 如果兔子不能到达终点,则计算剩余距离和时间
- distance -= rabbit_speed;
- rabbit_lead = rabbit_time + (distance / rabbit_speed) * 60 - turtle_time;
- }
- }
- // 输出结果
- printf("赛跑结束!\n");
- printf("乌龟所用时间: %d分钟\n", turtle_time);
- printf("兔子所用时间: %d分钟\n", rabbit_time);
- if (rabbit_lead > 0) { // 如果兔子领先,则输出领先时间,否则输出落败信息
- printf("兔子领先乌龟%d分钟!\n", rabbit_lead);
- } else {
- printf("兔子落败!\n");
- }
- return 0;
- }
好的,以下是对该程序的进一步解释:
- 在程序的开始部分,我们引入了三个头文件,这些头文件提供了我们需要的一些基本功能:
- stdio.h:用于输入和输出操作,例如printf()和scanf()函数。
- stdlib.h:包含了一系列有用的函数和宏,例如rand()函数用于生成随机数。
- time.h:提供了与时间相关的函数和数据类型,例如time()函数用于获取当前时间。
- 我们使用srand()函数初始化随机数生成器。这个函数需要一个种子值,我们使用当前时间作为种子值,这样每次运行程序时生成的随机数都会不同。
- 我们定义了一些变量来模拟赛跑的过程:
- distance:表示赛跑的距离,初始值为100米。
- turtle_speed:表示乌龟的速度,每分钟走1米。
- rabbit_speed:表示兔子的速度,每分钟走5米。
- turtle_time:表示乌龟所用的时间,初始值为0分钟。
- rabbit_time:表示兔子所用的时间,初始值为0分钟。
- rabbit_lead:表示兔子领先的时间,初始值为0分钟。
- 在模拟赛跑的过程中,我们使用一个while循环来模拟乌龟和兔子前进的过程。循环条件是赛跑距离大于0米。在循环中:
- 乌龟每60分钟走1米,所以我们将turtle_time加1,然后判断是否走到了终点,如果走到了终点,就跳出循环。
- 兔子每60分钟走5米,所以我们将rabbit_time加1,然后判断是否走到了终点,如果走到了终点,就计算领先时间,然后跳出循环。
- 最后,我们输出乌龟和兔子所用的时间以及兔子的领先时间。如果兔子领先,我们输出“兔子领先乌龟XX分钟!”,如果兔子落败,我们输出“兔子落败!”。
相关文章:
c语言新龟兔赛跑
以下是一个使用C语言编写的新的龟兔赛跑游戏: #include <stdio.h>#include <stdlib.h>#include <time.h>int main() { int distance, turtle_speed, rabbit_speed, turtle_time, rabbit_time, rabbit_lead; srand(time(NULL)); // 随机数种…...
Linux驱动开发——网络设备驱动(理论篇)
目录 一、前言 二、网络层次结构 三、网络设备驱动核心数据结构和函数 一、前言 网络设备驱动是 Linux 的第三大类驱动,也是我们学习的最后一类 Linux 驱动。这里我们首先简单学习一下网络协议层次结构,然后简单讨论 Linux 内核中网络实现的层次结构。…...
simulink仿真
1)系统问题 连续系统,离散系统(采样周期问题) 系统分析问题 2)求解器问题 变步长,定步长,步长时间与采样周期问题、 3)积分器问题 连续积分,离散积分问题ÿ…...
PC端页面进去先出现加载效果
自定义指令v-loading,只需要绑定Boolean即可 v-loading“loading” <el-table :data"list" border style"width: 100%" v-loading"loading"><el-table-column align"center" label"序号" width"5…...
磁盘清理在哪里?学会这4个方法,快速清理内存!
“在使用电脑的过程中,我可能经常会保存一些文件到电脑上,这也导致电脑经常出现内存不足的情况。我想问问磁盘清理在哪里呀?我应该如何打开呢?” 随着使用电脑的时间增长,用户可能经常会遇到磁盘空间不足的情况&#x…...
Error opening terminal: xterm.”的解决方法
主要是看下面这两个变量是否设置正确 $ echo $TERM $ echo $TERMINFO 通常TERM的默认值为xterm-265color, 要查看支持的term,可以ls -al /lib/terminfo/x/ 如果TERM是xterm-265color的话,TERMINFO设置为/usr/lib/terminfo make menuconfig时提示“Err…...
C#常见的设计模式-结构型模式
引言 设计模式是软件工程中用于解决常见问题的可复用解决方案。在C#编程中,常见的设计模式具有广泛的应用。本篇博客将重点介绍C#中常见的结构型设计模式,包括适配器模式、装饰器模式、代理模式、组合模式和享元模式。 目录 引言1. 适配器模式(Adapter …...
Redis分片备库切换操作
Redis分片备库切换操作 场景描述: 分片集群: 1.ipa:5001-ipa:5002 2.ipb:5001-ipb:5002 需将两个分片备库互置完成灾备 操作步骤 准备工作 主机密码:1qaz!QAZ 获取节点信息命令 /redispath/bin/redis-cli -a password -h ip -p port red…...
二叉树:leetcode1457. 二叉树中的伪回文路径
给你一棵二叉树,每个节点的值为 1 到 9 。我们称二叉树中的一条路径是 「伪回文」的,当它满足:路径经过的所有节点值的排列中,存在一个回文序列。 请你返回从根到叶子节点的所有路径中 伪回文 路径的数目。 给定二叉树的节点数目…...
【【Linux下的Petallinux 以及其他的配置】】
Linux下的Petallinux 以及其他的配置 sudo apt-get install iproute2 gawk python3 python build-essential gcc git make net-tools libncurses5-dev tftpd zlib1g-dev libssl-dev flex bison libselinux1 gnupg wget git-core diffstat chrpath socat xterm autoconf libtoo…...
13、深度学习之神经网络
深度学习是机器学习中重要的一个学科分支,它的特点就在于需要构建多层“深度”的神经网络。 人们在探索人工智能初期,就曾设想构建一个用数学方式来表达的模型,它可以模拟人的大脑,大脑我们都知道,有很多神经元,每个神经元之间通过突触链接。 神经网络的设计就是模仿了这…...
js的数组去重方法
目录 es6数组中对象去重 1. filter()用法 2. findIndex()用法 3. 去重 其他方法: 方法二:reduce()去重 1. reduce()用法 1.1 找出字符长度最长的数组成员。 1.2 扁平化二维数组 1.3 扁平化多维数组 三、总结方案: 使用Set…...
在 Next 14 的 appRouter 模式中接入 React-Redux
在 Next 14 的 appRouter 模式中接入 React-Redux 说明 Next.js 版本升级到 14 后,相比 13 版本是一个改动很大的大版本升级,很多概念或者使用方式 13 版本都有较大的区别,因此这里记录一些学习 14 版本的 Next.js 的心得体会或者问题。因为…...
aspose-words 跳过证书验证jar
优先用 aspose-words-19.3.jar ,不需要读取license.xml,导出后直接水印,jar包最好直接放在项目resource目录下直接引用,要不下载不下来 public static String doc2pdf(String fileName, String filePath) {try {String oldFile f…...
【开题报告】基于uniapp的瑜伽学习交流小程序的设计与实现
1.选题背景 瑜伽在现代社会中越来越受到人们的关注和喜爱。它不仅可以帮助人们塑造健美的身材,还能促进身心健康、提高生活质量。然而,由于瑜伽动作的复杂性和技巧性,很多初学者在学习过程中会遇到困难和挑战。 同时,由于工作和…...
【蓝桥杯单片机】应用手势传感器(串口2)
手势传感器:串口通信,可以识别左滑、右滑、单击三种手势,输出相应的固定串口数据。 控制器:IAP15F2K61S2单片机。 引脚连接: 单片机 手势传感器 P46 -> TX P47 -> RX VCC -> 5V GND->gnd main.c 程序说明:传感器与单片机的串口2进行数据交互,这里使用的是开…...
51单片机蜂鸣器发出悦耳的声音
51单片机蜂鸣器发出悦耳的声音 1.概述 这篇文章介绍单片机控制蜂鸣器入门小实验,通过该实验掌握蜂鸣器发声的原理,控制声音发出我们想听的音乐。 2.蜂鸣器发声 2.1.硬件原理 1.蜂鸣器正极接单片机20号引脚VCC,负极接19号引脚P1.7 2.20MH…...
Web3.0时代:区块链DAPP将如何颠覆传统模式
小编介绍:10年专注商业模式设计及软件开发,擅长企业生态商业模式,商业零售会员增长裂变模式策划、商业闭环模式设计及方案落地;扶持10余个电商平台做到营收过千万,数百个平台达到百万会员,欢迎咨询。 随着…...
JAVA 算法面试总结
1、二分查找 二分查找又叫折半查找,要求待查找的序列有序。每次取中间位置的值与待查关键字比较,如果中间位置 的值比待查关键字大,则在前半部分循环这个查找的过程,如果中间位置的值比待查关键字小, 则在后半部分循环…...
【Docker】安装MySQL 通俗易懂 亲测没有任何问题
目录 1.拉取镜像 2.运行容器 3.创建mysql配置文件 4.测试 1.拉取镜像 dockerhub官网:Docker 如果需要其他版本mysql docker pull mysql:xxx(版本) docker pull mysql #默认拉取最新版本 latest 2.运行容器 docker run -d -p 3306:33…...
地震勘探——干扰波识别、井中地震时距曲线特点
目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波:可以用来解决所提出的地质任务的波;干扰波:所有妨碍辨认、追踪有效波的其他波。 地震勘探中,有效波和干扰波是相对的。例如,在反射波…...
【解密LSTM、GRU如何解决传统RNN梯度消失问题】
解密LSTM与GRU:如何让RNN变得更聪明? 在深度学习的世界里,循环神经网络(RNN)以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而,传统RNN存在的一个严重问题——梯度消失&#…...
dedecms 织梦自定义表单留言增加ajax验证码功能
增加ajax功能模块,用户不点击提交按钮,只要输入框失去焦点,就会提前提示验证码是否正确。 一,模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...
渲染学进阶内容——模型
最近在写模组的时候发现渲染器里面离不开模型的定义,在渲染的第二篇文章中简单的讲解了一下关于模型部分的内容,其实不管是方块还是方块实体,都离不开模型的内容 🧱 一、CubeListBuilder 功能解析 CubeListBuilder 是 Minecraft Java 版模型系统的核心构建器,用于动态创…...
学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1
每日一言 生活的美好,总是藏在那些你咬牙坚持的日子里。 硬件:OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写,"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...
leetcodeSQL解题:3564. 季节性销售分析
leetcodeSQL解题:3564. 季节性销售分析 题目: 表:sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...
关键领域软件测试的突围之路:如何破解安全与效率的平衡难题
在数字化浪潮席卷全球的今天,软件系统已成为国家关键领域的核心战斗力。不同于普通商业软件,这些承载着国家安全使命的软件系统面临着前所未有的质量挑战——如何在确保绝对安全的前提下,实现高效测试与快速迭代?这一命题正考验着…...
视频行为标注工具BehaviLabel(源码+使用介绍+Windows.Exe版本)
前言: 最近在做行为检测相关的模型,用的是时空图卷积网络(STGCN),但原有kinetic-400数据集数据质量较低,需要进行细粒度的标注,同时粗略搜了下已有开源工具基本都集中于图像分割这块,…...
LINUX 69 FTP 客服管理系统 man 5 /etc/vsftpd/vsftpd.conf
FTP 客服管理系统 实现kefu123登录,不允许匿名访问,kefu只能访问/data/kefu目录,不能查看其他目录 创建账号密码 useradd kefu echo 123|passwd -stdin kefu [rootcode caozx26420]# echo 123|passwd --stdin kefu 更改用户 kefu 的密码…...
RSS 2025|从说明书学习复杂机器人操作任务:NUS邵林团队提出全新机器人装配技能学习框架Manual2Skill
视觉语言模型(Vision-Language Models, VLMs),为真实环境中的机器人操作任务提供了极具潜力的解决方案。 尽管 VLMs 取得了显著进展,机器人仍难以胜任复杂的长时程任务(如家具装配),主要受限于人…...
