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

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

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

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

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

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

2026/8/11 2:34:05 阅读更多 →

最新新闻

PEI瞬时转染怎么稳定放大?从293T小试到Expi293F/CHO-S摇瓶表达

PEI瞬时转染怎么稳定放大?从293T小试到Expi293F/CHO-S摇瓶表达

摘要: PEI瞬时转染常用于重组蛋白和抗体表达,但实验结果能否从6孔板小试稳定放大到摇瓶体系,取决于细胞状态、复合物制备、培养密度、补料时机和收获窗口等多个变量。293T贴壁细胞适合快速构建验证,Expi293F悬浮体系适合中规模蛋白…

2026/8/11 5:13:47 阅读更多 →
DeepSeek V4 Flash ARC-AGI推理能力解析与实战应用指南

DeepSeek V4 Flash ARC-AGI推理能力解析与实战应用指南

最近在AI圈子里,DeepSeek V4 Flash 0731版本在ARC-AGI基准测试中公布的验证得分,无疑是一个重磅消息。对于关注大模型技术进展的开发者、研究者和技术决策者来说,这不仅是一个简单的分数,更是一个信号,标志着开源模型在…

2026/8/11 5:13:47 阅读更多 →
Karma安全配置实战:从只读模式到TLS加密的完整指南

Karma安全配置实战:从只读模式到TLS加密的完整指南

1. 项目概述:为什么Karma的安全配置值得你花时间? 如果你正在使用或者考虑部署Karma,一个流行的、用于展示和交互式探索代码覆盖率报告的工具,那么安全配置绝对是你绕不开的一环。很多开发者,包括我自己在初期&#x…

2026/8/11 5:13:47 阅读更多 →
AI模型硬件化:从软件部署到芯片固化的技术演进与应用前景

AI模型硬件化:从软件部署到芯片固化的技术演进与应用前景

这次我们来看一个可能改变AI硬件游戏规则的技术方向:将AI模型直接“烧录”进芯片。AMD收购Taalas,瞄准的正是这个领域——让AI推理不再依赖庞大的软件栈和显存,而是固化到硬件里,直接执行。这听起来像是科幻,但背后是实…

2026/8/11 5:13:46 阅读更多 →
企业数字化转型中的数据埋点与异常检测实践

企业数字化转型中的数据埋点与异常检测实践

1. 项目背景解析"一片祥和的底下原来是暴风雨"这个标题让我想起去年参与的一个企业数字化转型项目。表面上看那家公司运营良好,各部门汇报数据都很漂亮,但当我们深入业务系统做数据埋点分析时,才发现库存周转率、客户留存率等关键指…

2026/8/11 5:13:46 阅读更多 →
UE5 HTTP客户端开发:5分钟实现原生网络通信,告别第三方库配置

UE5 HTTP客户端开发:5分钟实现原生网络通信,告别第三方库配置

1. 项目概述 如果你是一名UE5开发者,想在游戏里加个简单的网络功能,比如从服务器拉取个排行榜数据、验证一下用户登录、或者提交个玩家分数,第一反应是不是头皮发麻?打开搜索引擎,输入“UE5 C HTTP”,扑面而…

2026/8/11 5:12:46 阅读更多 →

日新闻

如何用Video2X实现专业级视频画质提升:AI视频增强完整指南

如何用Video2X实现专业级视频画质提升:AI视频增强完整指南

如何用Video2X实现专业级视频画质提升:AI视频增强完整指南 【免费下载链接】video2x A machine learning-based video super resolution and frame interpolation framework. Est. Hack the Valley II, 2018. 项目地址: https://gitcode.com/GitHub_Trending/vi/v…

2026/8/11 0:00:02 阅读更多 →
前后端分离项目中控制台与接口工具数据差异排查指南

前后端分离项目中控制台与接口工具数据差异排查指南

1. 问题现象解析:控制台与Apifox的数据差异 最近在调试一个前后端分离项目时,遇到了一个典型问题:后端服务在本地开发环境控制台能正常输出查询数据,但通过Apifox测试时却返回空结果。这种"控制台有数据,接口工具…

2026/8/11 0:00:03 阅读更多 →
AI编程实战:从Claude Code踩坑到游戏开发入门

AI编程实战:从Claude Code踩坑到游戏开发入门

1. 从“AI能帮我做游戏”到“AI让我重新学编程”最近身边不少朋友,尤其是一些非技术背景、但对游戏开发有浓厚兴趣的朋友,都在问我同一个问题:“听说现在用Claude Code这种AI编程工具,小白也能做游戏了,是真的吗&#…

2026/8/11 0:00:03 阅读更多 →

周新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/11 1:08:05 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/11 1:08:05 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/11 1:08:05 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/10 17:07:33 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/11 1:08:06 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/10 17:07:33 阅读更多 →