C语言 游动的小球

在这里插入图片描述
代码如下:

在这里插入代码片#include<stdio.h>
#include<stdlib.h>
#include<windows.h>int main() {int i,j;int x =5;int y =10;int height = 20;int velocity_x =1;int velocity_y =1;int left =0;int right =20;int top =0;int bottom = 10;while(1){x=x+velocity_x;y=y+velocity_y;system("cls");//清屏函数for(i =0;i<x;i++)printf("\n");for (j =0;j<y;j++)printf(" ");printf(" o ");printf("\n");Sleep(50);//输出小球上面的空行if((x== top)||(x==bottom))velocity_x = -velocity_x;if((y==left)||(y==right))velocity_y = -velocity_y;}return 0;}

以下是对这段 C 语言代码的详细解释:

  1. 头文件引用
    • #include<stdio.h>:引入标准输入输出库,用于使用 printf 函数进行输出操作。
    • #include<stdlib.h>:引入标准库,可能会用于一些通用的工具函数,这里主要是为了使用 system 函数。
    • #include<windows.h>:引入 Windows 系统的 API 库,用于使用 Sleep 函数和 system 函数中的 cls 命令。
  2. 主函数定义
    • int main():程序的入口函数。
  3. 变量声明与初始化
    • int i,j;:定义两个整型变量 ij,可能用于循环计数。
    • int x =5;:定义并初始化变量 x 为 5,用于表示小球的垂直位置。
    • int y =10;:定义并初始化变量 y 为 10,用于表示小球的水平位置。
    • int height = 20;:定义并初始化变量 height 为 20,可能代表整个显示区域的高度,但在代码中未被使用。
    • int velocity_x =1;:定义并初始化变量 velocity_x 为 1,用于表示小球在垂直方向的速度。
    • int velocity_y =1;:定义并初始化变量 velocity_y 为 1,用于表示小球在水平方向的速度。
    • int left =0;:定义并初始化变量 left 为 0,可能代表显示区域的左边界。
    • int right =20;:定义并初始化变量 right 为 20,可能代表显示区域的右边界。
    • int top =0;:定义并初始化变量 top 为 0,可能代表显示区域的上边界。
    • int bottom = 10;:定义并初始化变量 bottom 为 10,可能代表显示区域的下边界。
  4. 主循环
    • while(1):创建一个无限循环,使程序持续运行。
    • x=x+velocity_x;:更新小球的垂直位置,根据 velocity_x 进行垂直移动。
    • y=y+velocity_y;:更新小球的水平位置,根据 velocity_y 进行水平移动。
    • system("cls");:调用系统命令 cls 来清除屏幕,以实现动画效果。
    • 两个 for 循环:
      • for(i =0;i<x;i++) printf("\n");:输出 x 个换行符,用于将小球定位在垂直位置上。
      • for (j =0;j<y;j++) printf(" ");:输出 y 个空格,用于将小球定位在水平位置上。
    • printf(" o ");:输出小球的表示字符 o
    • printf("\n");:输出一个换行符。
    • Sleep(50);:调用 Windows 系统的 Sleep 函数,使程序暂停 50 毫秒,控制小球的移动速度,产生动画的帧延迟。
    • 两个 if 语句:
      • if((x== top)||(x==bottom)) velocity_x = -velocity_x;:如果小球到达上边界或下边界,将垂直速度取反,实现垂直方向的反弹效果。
      • if((y==left)||(y==right)) velocity_y = -velocity_y;:如果小球到达左边界或右边界,将水平速度取反,实现水平方向的反弹效果。
  5. 程序结束
    • return 0;:表示程序正常结束,返回 0。

总的来说,这段代码通过不断更新小球的位置,并根据边界条件改变其速度,结合清屏和暂停功能,在控制台中实现了一个简单的小球反弹动画效果。小球最初位于
(5, 10) 的位置,以一定的速度移动,当碰到边界时会反弹。 代码很简单,快去试试吧

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/892084.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于SpringBoot实现的保障性住房管理系统

&#x1f942;(❁◡❁)您的点赞&#x1f44d;➕评论&#x1f4dd;➕收藏⭐是作者创作的最大动力&#x1f91e; &#x1f496;&#x1f4d5;&#x1f389;&#x1f525; 支持我&#xff1a;点赞&#x1f44d;收藏⭐️留言&#x1f4dd;欢迎留言讨论 &#x1f525;&#x1f525;&…

安卓触摸对焦

1. 相机坐标说明 触摸对焦需要通过setFocusAreas()设置对焦区域&#xff0c;而该方法的参数的坐标&#xff0c;与屏幕坐标并不相同&#xff0c;需要做一个转换。 对Camera&#xff08;旧版相机API&#xff09;来说&#xff0c;相机的坐标区域是一个2000*2000&#xff0c;原点…

【信息系统项目管理师】高分论文:论信息系统项目的风险管理(人民医院的信息系统)

更多内容请见: 备考信息系统项目管理师-专栏介绍和目录 文章目录 论文1、规划风险管理2、项目风险识别3、风险定性分析4、风险定量分析5、制定风险应对6、实施风险应对计划7、监督风险论文 2022年6月,我作为项目经理承担了XX县人民医院的信息系统建设,该项目总投资300万,其…

计算机网络、嵌入式等常见问题简答

1.嵌入式系统中经常要用到无限循环&#xff0c;如何用C编写死循环 答&#xff1a;while(1){}或者for(;;) 2.程序的局部变量存在于哪里&#xff0c;全局变量存在于哪里&#xff0c;动态申请数据存在于哪里。 答&#xff1a;程序的局部变量存在于栈区&#xff1b;全局变量存在…

【socketioxide和axum集成-实现websocket实时通信-Rust点滴】

socketioxide的axum集成 启动socketio依靠examle里的layer使用可变State依靠axum里的example提取client,IP非代理,tcp,socket对方地址代理SocketRef里socket.req_parts. axum的get,or,post,的handle中请求处理中使用emit发送消息.演示几个自己用的 消息处理1 ,消息mess, 通知签…

gitee 使用教程

前言 Gitee 是一个中国的开源代码托管平台&#xff0c;类似于 GitHub&#xff0c;旨在为开发者提供一个高效、稳定、安全的代码管理和协作开发环境。Gitee 支持 Git 协议&#xff0c;可以托管 Git 仓库&#xff0c;进行版本控制、代码协作、项目管理等操作。 1. Gitee 的主要…

linux ubantu重启桌面

在 Ubuntu 系统中&#xff0c;重启桌面环境通常有几种方法&#xff0c;具体取决于你所使用的桌面环境&#xff08;如 GNOME、KDE 等&#xff09;。下面是几种常用的重启桌面的方法&#xff1a; 重启 GNOME 桌面环境 如果你使用的是 GNOME 桌面环境&#xff08;Ubuntu 默认桌面…

湖南引力:低代码技术助力军工企业实现设备管理系统创新

背景介绍 在核工业相关生产领域&#xff0c;随着技术的持续进步&#xff0c;生产活动对设备的依赖性日益增强。随着企业规模的不断扩大&#xff0c;所涉及的设备数量和种类也在急剧增长&#xff0c;这使得传统的设备管理模式逐渐显得力不从心。企业当前的设备管理主要依赖人工…

【701. 二叉搜索树中的插入操作 中等】

题目&#xff1a; 给定二叉搜索树&#xff08;BST&#xff09;的根节点 root 和要插入树中的值 value &#xff0c;将值插入二叉搜索树。 返回插入后二叉搜索树的根节点。 输入数据 保证 &#xff0c;新值和原始二叉搜索树中的任意节点值都不同。 注意&#xff0c;可能存在多…

VR+智慧消防一体化决策平台

随着科技的飞速发展&#xff0c;虚拟现实&#xff08;VR&#xff09;技术与智慧城市建设的结合越来越紧密。在消防安全领域&#xff0c;VR技术的应用不仅能够提升消防训练的效率和安全性&#xff0c;还能在智慧消防一体化决策平台中发挥重要作用。本文将探讨“VR智慧消防一体化…

OA系统如何做好DDOS防护

OA系统如何做好DDOS防护&#xff1f;在数字化办公蔚然成风的当下&#xff0c;OA&#xff08;办公自动化&#xff09;系统作为企业内部管理与协作的神经中枢&#xff0c;其安全性和稳定性直接关系到企业的日常运营效率、信息流通效率以及长远发展。OA系统不仅承载着企业内部的日…

nginx http反向代理

系统&#xff1a;Ubuntu_24.0.4 1、安装nginx sudo apt-get update sudo apt-get install nginx sudo systemctl start nginx 2、配置nginx.conf文件 /etc/nginx/nginx.conf&#xff0c;但可以在 /etc/nginx/sites-available/ 目录下创建一个新的配置文件&#xff0c;并在…

arcgisPro加载CGCS2000天地图后,如何转成米单位

1、导入加载的天地图影像服务&#xff0c;一开始是经纬度显示的。 2、右键地图&#xff0c;选择需要调整的投影坐标&#xff0c;这里选择坐标如下&#xff1a; 3、点击确定后&#xff0c;就可以调整成米单位的了。 4、切换后结果如下&#xff1a; 如有需要&#xff0c;可调整成…

计算机的错误计算(二百零四)

摘要 利用两个大模型判断&#xff1a;在(0, ) 范围内&#xff0c; 和 等价吗&#xff1f;实验表明&#xff0c;两个大模型&#xff08;其中一个是数学大模型&#xff09;均在输出幻觉&#xff0c;均说等价&#xff01; 例1. 在(0, ) 范围内&#xff0c; 和 等价吗&#xf…

C++头文件map

在C中&#xff0c;<map> 头文件提供了一种关联容器&#xff0c;它存储的是键值对&#xff08;std::pair&#xff09;&#xff0c;并且会自动根据键进行排序。以下是一些常用的 map 函数及其使用方式&#xff1a; 插入元素&#xff1a;insert(const value_type& val) …

简单的jmeter数据请求学习

简单的jmeter数据请求学习 1.需求 我们的流程服务由原来的workflow-server调用wfms进行了优化&#xff0c;将wfms服务操作并入了workflow-server中&#xff0c;去除了原来的webservice服务调用形式&#xff0c;增加了并发处理&#xff0c;现在想测试模拟一下&#xff0c;在一…

Unity3D仿星露谷物语开发17之空库存栏UI

1、目标 将库存栏放在游戏界面中&#xff0c;一般情况下角色居中展示时库存栏在底部&#xff0c;当角色位于界面下方时库存栏展示在顶部避免遮挡。 2、CanvasGroup组件 用于集中控制UI元素的透明度、交互性和射线投射行为。CanvasGroup的Alpha属性允许渐变效果&#xff0c;I…

现代谱估计的原理及MATLAB仿真(二)(AR模型法、MVDR法、MUSIC法)

现代谱估计的原理及MATLAB仿真AR参数模型法&#xff08;参数模型功率谱估计&#xff09;、MVDR法&#xff08;最小方差无失真响应法&#xff09;、MUSIC法&#xff08;多重信号分类法&#xff09; 文章目录 前言一、AR参数模型1 原理2 MATLAB仿真 二、MVDR法1 原理2 MATLAB仿真…

Golang学习笔记_20——error

Golang学习笔记_17——方法 Golang学习笔记_18——接口 Golang学习笔记_19——Stringer 文章目录 error1. 接口2. 创建3. 自定义错误4. 处理错误5. 实现Error接口 源码 error 在Go语言中&#xff0c;error 是一个内建的接口类型&#xff0c;用于表示和处理错误情况。它是Go语言…

交换机划分Vlan配置

交换机划分Vlan配置 实验目标 理解虚拟LAN(VLAN)基本配置&#xff1b;掌握一般交换机按端口划分VLAN的配置方法&#xff1b;掌握Tag VLAN配置方法。 实验背景 某一公司内财务部、销售部的PC通过2台交换机实现通信&#xff1b;要求财务部和销售部的PC可以互通&#xff0c;但…