学习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/10/25 10:22:37 阅读更多 →
【电商项目】复杂Impl代码实现思路引导(适合新手,本文以新增和修改商品为例)

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

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

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

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

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

2026/10/25 11:54:40 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/10/25 11:19:54 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/10/24 17:47:00 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/10/24 18:34:36 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/10/25 10:02:42 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/10/25 3:12:30 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/10/24 21:09:59 阅读更多 →

日新闻

周新闻

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/25 10:02:43 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/25 13:21:54 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/25 7:47:32 阅读更多 →