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…...
HtmlTextView项目维护指南:如何继续开发这个停止维护的开源项目
HtmlTextView项目维护指南:如何继续开发这个停止维护的开源项目 【免费下载链接】html-textview TextView to display simple HTML 项目地址: https://gitcode.com/gh_mirrors/ht/html-textview 你是否正在寻找一个轻量级的Android HTML文本显示解决方案&…...
OpenClaw文件管理机器人:千问3.5-9B智能归类200+技术文档
OpenClaw文件管理机器人:千问3.5-9B智能归类200技术文档 1. 为什么需要文件管理机器人 我的下载文件夹已经变成了一个数字黑洞——里面堆积着超过200份未分类的技术文档,包括PDF白皮书、Markdown笔记、代码片段和会议录音。每次寻找特定文件都需要在混…...
OpenClaw隐私保护:Qwen3.5-9B本地处理敏感数据的实践
OpenClaw隐私保护:Qwen3.5-9B本地处理敏感数据的实践 1. 为什么需要本地化处理敏感数据? 去年我在处理一批客户调研报告时,曾遇到一个尴尬场景:当我把包含联系方式和消费习惯的Excel表格上传到某云端AI分析平台后,突…...
如何高效使用Dism++:Windows系统优化与管理的终极指南
如何高效使用Dism:Windows系统优化与管理的终极指南 【免费下载链接】Dism-Multi-language Dism Multi-language Support & BUG Report 项目地址: https://gitcode.com/gh_mirrors/di/Dism-Multi-language Dism是一款功能强大的Windows系统优化工具&…...
为什么 Multi-Agent 比单 Agent 更难
为什么 Multi-Agent 比单 Agent 更难——从协作黑洞到协同效率巅峰的全维度拆解 (全文预计42万字) 一、 引言:从 ChatGPT 的“天花板对话”到 AgentVerse 的“分布式协作故障”——这才是 AI 应用落地的真实门槛 1.1 钩子(The Hook):单Agent vs Multi-Agent 的两个真实…...
django基于大数据技术的医疗数据分析与研究_c1o2u99y_hxj031
前言随着信息技术的飞速发展,医疗领域产生的数据量呈爆炸式增长。这些数据蕴含着丰富的健康信息和疾病规律,但传统的数据处理方式往往只能进行简单的统计汇总,无法深入挖掘数据背后的关联性和趋势性规律,导致大量宝贵的医疗数据资…...
Zig新手必看:如何用zigcli快速构建命令行工具(附完整代码示例)
Zig语言实战:从零构建命令行工具的完整指南 引言:为什么选择Zig开发命令行工具? 在当今编程语言百花齐放的时代,Zig以其独特的魅力吸引着系统级开发者的目光。这门新兴语言融合了C语言的底层控制能力与现代语言的开发体验…...
Limine混合ISO制作教程:BIOS/UEFI双启动镜像的完整流程
Limine混合ISO制作教程:BIOS/UEFI双启动镜像的完整流程 【免费下载链接】limine Modern, advanced, portable, multiprotocol bootloader and boot manager. 项目地址: https://gitcode.com/gh_mirrors/li/limine Limine是一款现代化、先进的可移植多协议引导…...
边缘设备资源告急?立刻启用.NET 9的Dynamic PGO+Crossgen2预编译组合技(仅限Preview 5+)
第一章:边缘设备资源告急?立刻启用.NET 9的Dynamic PGOCrossgen2预编译组合技(仅限Preview 5)在资源受限的边缘设备(如Raspberry Pi 4、Jetson Nano或工业PLC网关)上,.NET应用常因JIT编译开销与…...
图片格式转换效率革命:从繁琐流程到一键操作的技术突破
图片格式转换效率革命:从繁琐流程到一键操作的技术突破 【免费下载链接】Save-Image-as-Type Save Image as Type is an chrome extension which add Save as PNG / JPG / WebP to the context menu of image. 项目地址: https://gitcode.com/gh_mirrors/sa/Save-…...
