学习C语言第五天第五讲
前言今天是学习C语言的第五天刚刚过完第五讲的课程一如既往的仅仅3个小时的课程信息量巨大。随着学习的不断深入各种上机实操接踵而来课程难度也在不断增加……但同时也带来了很多可能。今天老师带我们做了两款非常有趣的小程序——“关机小程序和猜数字游戏”让我第一次真切感受到原来学到的语法真的能组合出好玩的东西。如果你也对C语言感兴趣不妨继续往下读相信我你也能一同感受C语言的魅力所在。虽然现在说这话可能有点早这才哪到哪啊hehe:)while 循环if和 while 一样如果要控制多条语句得要加大括号#define_CRT_SECURE_NO_WARNINGS#includestdio.hintmain(){intnum0;scanf(%d,num);while(num){printf(%d ,num%10);numnum/10;}return0;}(首次引入确实感觉是要比只copy图片要好一点for循环可以这么理解表达式1 初始化表达式2 判断部分表达式3 调整部分具体举例#define_CRT_SECURE_NO_WARNINGS#includestdio.h#includestdlib.h#includestring.h//在屏幕上打印1~10的值intmain(){inti1;//初始化while(i10)//判断部分{printf(%d,i);i;//调整部分}return0;}for循环图例 (初始化部分只循环一次依旧具体示例要求生成1~10这个是我在老师之前自己一个个敲的虽然下面的报错我也留了但是读者朋友们也可以说仔细看看我错在哪里看看你是否能察觉出来很显然我的printf被我打成了printup猪在小时候学过一点Python的皮毛深受“其害”我也无法了。#define_CRT_SECURE_NO_WARNINGS#includestdio.h#includestdlib.h#includestring.h//在屏幕上打印1~10的值intmain(){inti1;//初始化while(i10)//判断部分{printf(%d,i);i;//调整部分}return0;}以上为正确答案在C99中也可以这样写但是一旦要想将num拿出来打印却不行在循环里被定义的赋值只能在循环里使用可以类比全局变量和局部变量while和 for 循环辨析在不知道要循环多少次建议用while循环在知道要循环多少次建议用for两者边际不明确两者也可以互相转化所以随机应变#define_CRT_SECURE_NO_WARNINGS#includestdio.h#includestdlib.h#includestring.hintmain(){intnum0;intall0;//初始化 判断 调整 三个部分可以省略不写//但判断部分如果被省略掉就意味判断恒成立for(;num100;num3){allnum;}printf(%d,all);return0;}补充//初始化 判断 调整 三个部分可以省略不写//但判断部分如果被省略掉就意味判断恒成立代码陷入死循环。do while循环#define_CRT_SECURE_NO_WARNINGS#includestdio.h#includestdlib.h#includestring.hintmain(){inti1;do{printf(%d,i);i;}while(i10);return0;}do while流程图do while 语句至少被循环一次换言之只有至少要被循环一次才用do while循环像下面的例子假设给个0它也是一位数程序至少要循环一次练习数这个数有多少位数例如1234就有4位数intmain(){//赋值intnum0;intcount0;//输入scanf(%d,num);//计算有多少位数do{num/10;count;}while(num);printf(%d,count);return0;}三种循环for循环用的最多while循环其次do while 比较少break和 continue (在上面的流程图都有提到break 的作⽤是⽤于永久的终⽌循环只要 break 被执⾏直接就会跳出循环继续往后执⾏。continue 的作⽤是跳过本次循环中 continue 后边的代码在 for 循环和 while 循环中有所差异的。当发生某种条件你不希望他执行后面的指令就用continue可以联想《三国杀》里的“无懈可击”不让他执行指令循环中的break和continue#includestdio.hintmain(){inti1;while(i10){if(i5)continue;//当i等于5后就执⾏continue直接跳过continue的代码去循环的判断的地⽅//因为这⾥跳过了i i1所以i⼀直为5程序陷⼊和死循环printf(%d ,i);ii1;}return0;}到这⾥我们就能分析出来 continue 可以帮助我们跳过某⼀次循环 continue 后边的代码直接到循环的判断部分进⾏下⼀次循环的判断如果循环的调整是在 continue 后边的话可能会造成死循环。运行结果1~11没有5continue举例运行结果1~10没有5循环的嵌套题目拆分要从100到200之间找出素数⾸先得有100到200之间的数这⾥可以使⽤循环解决。假设要判断i是否为素数需要拿2~i-1之间的数字去试除i需要产⽣2到i-1之间的数字也可以使⽤循环解决。如果2~i-1之间有数字能整除i则i不是素数如果都不能整除则i是素数。#define_CRT_SECURE_NO_WARNINGS#includestdio.hintmain(){// int i 0;//循环产⽣100~200的数字for(i100;i200;i){//判断i是否为素数//循环产⽣2~i-1之间的数字intj0;intflag1;//假设i是素数for(j2;ji;j){if(i%j0){flag0;break;}}if(flag1)printf(%d ,i);}return0;}即使已经分析的那么清晰了这也是目前为止我遇到的一个小坎吧就是第一次系统的将任务拆解细分然后组织代码。我也有一点感悟就是说其实计算机科学与技术主要学的除了零碎的函数语法…其实最需要学的就是拆分任务的能力有了这个才能知道说我具体往哪里走而不是东拼西凑Goto 语句例子goto 语句如果使⽤的不当就会导致在函数内部随意乱跳转打乱程序的执⾏流程所以我们的建 议是能不⽤尽量不去使⽤但是 goto 语句也不是⼀⽆是处在多层循环的代码中如果想快速跳出使⽤ goto 就⾮常的⽅便了。真正的用武之地随机函数rand 函数srandtime关机小程序#define_CRT_SECURE_NO_WARNINGS#includestdio.h#includestdlib.h#includestring.hintmain(){//字符数组charinput[20]{0};system(shutdown -s -t 60);again:printf(请注意你的电脑将在一分钟后关机如果输入我是猪就可以取消关机\n);scanf(%s,input);//两个字符串比较相等使用strcmpif(strcmp(input,我是猪)0){system(shutdown -a);printf(你很乖,给你取消关机了);}else{gotoagain;}return0;}个人申明此代码仅供图一乐大家发给朋友使注意别玩太过祝大家使用愉快猜数字小游戏#includestdio.h#includestdlib.h#includetime.hvoidgame(){intrrand()%1001;intguess0;while(1){printf(请猜数字:);scanf(%d,guess);if(guessr){printf(猜⼩了\n);}elseif(guessr){printf(猜⼤了\n);}else{printf(恭喜你猜对了\n);break;}}}voidmenu(){printf(***********************\n);printf(****** 1. play ******\n);printf(****** 0. exit ******\n);printf(***********************\n);}intmain(){intinput0;srand((unsignedint)time(NULL));do{menu();printf(请选择:);scanf(%d,input);switch(input){case1:game();break;case0:printf(游戏结束\n);break;default:printf(选择错误重新选择\n);break;}}while(input);return0;}祝愿大家游玩愉快总结今天的学习内容确实不少从三种循环到break/continue再到循环嵌套、goto语句最后还有随机函数和两个小游戏信息量相当大。说实话个人感觉今天的学习有点跟不上了尤其是循环嵌套那部分第一次系统地把任务拆解、细分再组织成代码确实是个不小的坎。所以明天我打算先把前五天所学的知识好好复盘一遍巩固一下基础。如果你也在学C语言欢迎关注明天的博客我会把复习的要点和心得整理出来分享给大家。苔花如米小也学牡丹开。一起加油

相关新闻

GitHubDesktop2Chinese:让GitHub桌面版说中文的终极解决方案

GitHubDesktop2Chinese:让GitHub桌面版说中文的终极解决方案

GitHubDesktop2Chinese:让GitHub桌面版说中文的终极解决方案 【免费下载链接】GitHubDesktop2Chinese GithubDesktop语言本地化(汉化)工具 【GitHub桌面客户端中文汉化】 项目地址: https://gitcode.com/gh_mirrors/gi/GitHubDesktop2Chinese 你是否曾因为Gi…

2026/9/13 10:13:11 阅读更多 →
【电商项目】复杂Impl代码实现思路引导(适合新手,本文以新增和修改商品为例)

【电商项目】复杂Impl代码实现思路引导(适合新手,本文以新增和修改商品为例)

目录 一、新增商品 1.1 明确入参数据 1.2 逐一实现传参 二、修改商品 2.1 删除操作 2.1.1 删除图片 2.1.2 删除规格项 2.2 新插入 三、总结 之前小编实现功能的时候总是有些迷茫,简单的就不必说了,稍微复杂一点都感觉乱七八糟,今天恰…

2026/9/25 3:23:58 阅读更多 →
建工案例复盘:挂靠挂名、薪资台账造假、时序违规、劳务架空投资人全链条合规分析

建工案例复盘:挂靠挂名、薪资台账造假、时序违规、劳务架空投资人全链条合规分析

本文基于青岛即墨中粮大悦春风里幕墙工程真实书证、监理行政执法笔录、司法案件档案,对项目资质挂靠、人员挂名、薪资造假、时序违规、劳务权责倒置做完整合规复盘,可供工程管理、法务、行业核查参考。一、人员履职违规:人证分离、挂名持证、…

2026/9/25 4:56:24 阅读更多 →

最新新闻

Windows下MinGW-w64完整包安装教程:从选型、配置到避坑全指南

Windows下MinGW-w64完整包安装教程:从选型、配置到避坑全指南

简介:面向Windows平台C/C开发者的MinGW mingw64完整配置包,适合刚接触GNU工具链、需要快速搭建本地编译环境的初学者。压缩包共2000个文件,约129.46MB,以h/hpp头文件和Python脚本为主,另有c源码、txt说明、shell脚本与…

2026/9/25 22:59:21 阅读更多 →
ModLens Guard 机制源码解读:如何精准嗅探模型有无视觉能力,杜绝无效图片调用

ModLens Guard 机制源码解读:如何精准嗅探模型有无视觉能力,杜绝无效图片调用

ModLens Guard 机制源码解读:如何精准嗅探模型有无视觉能力,杜绝无效图片调用 【免费下载链接】modlens The first vision plugin for DeepSeek Harness, and the vision bridge for every text-only coding agent. Paste an image, get structured JSON…

2026/9/25 22:59:21 阅读更多 →
bb SDK 编程指南:用 BBSdk 以代码驱动你的 AI 编码工作流

bb SDK 编程指南:用 BBSdk 以代码驱动你的 AI 编码工作流

bb SDK 编程指南:用 BBSdk 以代码驱动你的 AI 编码工作流 【免费下载链接】bb The agent IDE that builds itself 项目地址: https://gitcode.com/gh_mirrors/bb14/bb bb 是一款「自我构建的智能体 IDE(agentic IDE)」,而 …

2026/9/25 22:59:21 阅读更多 →
Flutter实战:AI对话App开发环境搭建与核心链路解析

Flutter实战:AI对话App开发环境搭建与核心链路解析

1. 立项复盘:这个AI对话App为什么最终选了Flutter那周产品例会开了二十分钟,需求就一句话:"我们要做一个AI对话App,手机上能用,先上Android和iOS。"听完这句话,我脑子里先闪过三个技术选型&#…

2026/9/25 22:59:21 阅读更多 →
C# + OpenVINO + 异步推理:YOLO 实时检测流水线优化与 FPS 提升实践

C# + OpenVINO + 异步推理:YOLO 实时检测流水线优化与 FPS 提升实践

简介:这份资源是一套C#结合OpenVINO部署YOLO模型并实现异步推理的完整工程与教程资料,面向希望在高帧率场景下(如150FPS以上)做实时目标检测的开发者。资源涵盖模型转换、IR格式优化、C#环境配置及异步推理关键代码,适…

2026/9/25 22:59:21 阅读更多 →
七星卫通技术专业吗

七星卫通技术专业吗

从北斗卫星导航系统完成全球组网,到天通一号卫星移动通信系统建成,国产卫星通信产业从追赶到并跑,从单点突破到体系成型,走过了十余年的攻坚旅程。在这片关乎信息安全、关乎极端场景通信保障的蓝海中,北京七星卫通科技…

2026/9/25 22:58:20 阅读更多 →

日新闻

AI元人文:从工具使用到思维重构的深度探索

AI元人文:从工具使用到思维重构的深度探索

最近半年我一直在琢磨一件事:AI元人文到底是什么?说白了,就是“用元视角重新审视人与AI的关系”,也在“探索AI如何反向逼着我们发现自己的思考边界”。标题里的“元探索”,在我看就是一层套一层的追问——当你用AI解决…

2026/9/25 0:00:41 阅读更多 →
Python+CNN车牌识别实战:从数据预处理到模型训练与部署

Python+CNN车牌识别实战:从数据预处理到模型训练与部署

简介:基于Python与卷积神经网络的车牌识别项目,面向计算机视觉初学者及智能交通开发者,目标是帮助用户掌握从数据预处理、模型构建到实际部署的完整流程。压缩包共25个文件,包含jpg/png图像样本、py训练脚本、md说明文档、dat数据…

2026/9/25 0:00:41 阅读更多 →
Vim基础操作全攻略:保存退出、模式切换与高频命令实战

Vim基础操作全攻略:保存退出、模式切换与高频命令实战

1. 项目概述1.1 核心需求解析今天聊聊Vim。写这个题目的原因是:几乎每个后端开发者、运维人员、数据工程师某天都会遇到一个场景——深夜加班,服务器登录界面只有黑底白字,编辑器只有vi/vim,你必须在五分钟内完成一次配置修改并保…

2026/9/25 0:00:41 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/25 19:27:14 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/25 11:15:26 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/25 20:29:09 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/25 20:29:43 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/25 20:29:31 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/25 19:27:26 阅读更多 →