C(十四)while、for、do-while循环综合(一)

uu们,小弟我本科在读,文章我会一直坚持更新下去,包括但不限于C初阶、C进阶、数据结构、C++、Linux、MySQL、项目、QT开发、各种算法······(之后会持续更新),并且站在小白的视角尽可能通俗易懂地把这些写出来,同时加上各种生活场景帮助大家理解知识,并知道说“噢,用来可以这样用”。

 整体工程量比较大,可以给小弟打赏一下多买点营养餐的费用吗?(1元也可以,万分感谢)。

本文目录:👉👉👉

一、数学问题(一)(难度:*)

二、图形的打印(难度:**)

三、密钥(难度:**)

四、数学问题(二)(难度:***)

五、实际场景(难度:***)--- 自选小炒

 

        【分解目标1】选择吃与不吃

 

        【分解目标2】选择如下(自选小炒配料):>(注:米、面、粉免费)

 

        【分解目标3】选择哪种肉,哪种菜

 

        【分解目标4】同学选完后,给下一个同学选择

六、后记

前言:👉👉👉

三大循环结构、各种语句和几个关键字的综合运用。👉

 

while循环 --- 军训匕首操情景

https://blog.csdn.net/2401_87025655/article/details/142651077

for循环 --- 黑神话情景

https://blog.csdn.net/2401_87025655/article/details/142684637

do - while循环 --- 致敬革命烈士

https://blog.csdn.net/2401_87025655/article/details/142699352

goto语句 --- 关机程序(另一位作者的)

https://blog.csdn.net/m0_68865259/article/details/124537858?fromshare=blogdetail&sharetype=blogdetail&sharerId=124537858&sharerefer=PC&sharesource=2401_87025655&sharefrom=from_link

一、数学问题(一)(难度:*)

场景一:求12 与 18的最大公因数

法一:👉(正向思维)

#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>
int main()
{int a = 12;int b = 18;int max = 1; //1、两个正整数的公因数肯定有1,不妨先令最大公因数为1int i = 1;for (i = 1; i <= 12; i++){if (a % i == 0 && b % i == 0){max = i; //2、之后如果找到比1更大的,再赋值给max}}printf("%d", max);return 0;
}

法二:👉(逆向思维) 

#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>
int main()
{int a = 12;int b = 18;int max = 0;int i = 0;for (i = 12; i > 0; i--){if (a % i == 0 && b % i == 0){max = i;break; //从大到小 --- 找到那个最大的就打破循环}}printf("%d", max);return 0;
}

场景二:求十个整数的最大值

法一:do - while循环 

法二:for循环

👉https://blog.csdn.net/2401_87025655/article/details/142699137

场景三: 编写程序数一下 1到 100 的所有整数中出现多少个数字9

本题有一个初学者容易掉进的坑(反正我就掉了,哈哈😄)

话不多说,上分析链接👉

 https://blog.csdn.net/2401_87025655/article/details/142699192

场景四:一个正整数的逆序打印

输入示例:1234

输出示例:4321 

 分析详见👉C题(八)一个正整数的逆序打印(用循环结构实现)

https://blog.csdn.net/2401_87025655/article/details/142708516

二、图形的打印(难度:**)

 场景一:矩形、直角三角形

👉https://blog.csdn.net/2401_87025655/article/details/142651077

 场景二:正三角形

👉 https://blog.csdn.net/2401_87025655/article/details/142675413

三、密钥(难度:**)

场景一:“芝麻开门 ”是通往C语言的大门的暗号,现在你需要说对暗号,大门才会打开。

 👉分析的链接:

https://blog.csdn.net/2401_87025655/article/details/142693306

场景二:输入一串密码,如:“123   xxxx” ,然后读取并确认,是 --- Y;否 --- N。 

👉分析的链接: 

https://blog.csdn.net/2401_87025655/article/details/142694774

四、数学问题(二)(难度:***)

 场景一:水仙花数是指一个三位数,它的每个数位上的数字的立方和等于它本身。
例如,153就是一个水仙花数,因为1³ + 5³+ 3³ = 1 + 125 + 27 = 153。

👉分析的链接(难点剖析): 

https://blog.csdn.net/2401_87025655/article/details/142697771

场景二:打印1到100之间的素数。(素数也叫质数,是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。例如2、3、5、7、11等都是素数。)

👉分析的链接 :(含对C语言中0与非0的认知、flag证伪理论)

https://blog.csdn.net/2401_87025655/article/details/142703599

五、实际场景(难度:***)--- 自选小炒

 场景一:

“要吃什么吗,靓仔?” 热情的食堂阿姨问你了,你要怎么回答?

 【分解目标1】选择吃与不吃

第一步:打印菜单(先执行 --- 用do - while循环) 

    do{//菜单栏printf("******* 1、炒面 *******\n");printf("******* 2、炒饭 *******\n");printf("******* 3、炒粉 *******\n");printf("**** 0、不了,谢谢 ****\n");}while();

 第二步:开始选择

        //选择栏int input = 1;printf("请选择:>");scanf("%d", &input);

第三步:循环实现 --- 如果不吃,阿姨就问下一位同学

基于:在C语言中,非0表示真,0表示假,所以👉

选择 1、2 、3(非0)时,加上取反操作符 !-----> 变为0,表示假,循环终止。

选择 0 时,加上 !------> 变为非0,表示真,循环继续。

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{int input = 1;printf("要吃什么吗,靓仔?\n");do{//菜单栏printf("******* 1、炒面 *******\n");printf("******* 2、炒饭 *******\n");printf("******* 3、炒粉 *******\n");printf("**** 0、不了,谢谢 ****\n");//选择栏printf("请选择:>");scanf("%d", &input);//如果不吃if (input == 0){printf("\n你呢,同学?\n\n");}//如果吃else{printf("循环体1");}} while (!input); //非0表示真,0表示假return 0;
}

【分解目标2】选择如下(自选小炒配料):>(注:米、面、粉免费)

————两肉两菜 :8元

————三肉两菜 :9元

————三肉三菜 :10元

接下来,编写循环体1

            printf("同学,有8、9、10元的配料,你要几元的配料呀?:>");int input1 = 0;scanf("%d",&input1);switch (input){case 8:printf("语句1\n");break;case 9:printf("语句2\n");break;case 10:printf("语句3\n");break;}

tip:因为我这里说明在 8、9、10中选,所以我switch内部没有写default子句。(当然,有写更好)。  

【分解目标3】选择哪种肉,哪种菜

以8元的为例,选两肉两菜,共4个选择,所以语句1为 👉

printf("同学,选一下配料。\n");
int j = 0;
for (j = 4; j > 0; j--)
{printf("这个。\n");
}

同理,9元---5个选择 ; 10元 --- 6个选择。 

【分解目标4】同学选完后,给下一个同学选择

语句1、2、3执行完后都加上input = 0,使得do - while循环继续。 


最终代码 👉

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{int input = 1;printf("要吃什么吗,靓仔?\n");do{//菜单栏printf("******* 1、炒面 *******\n");printf("******* 2、炒饭 *******\n");printf("******* 3、炒粉 *******\n");printf("**** 0、不了,谢谢 ****\n");//选择栏printf("请选择:>");scanf("%d", &input);//如果不吃if (input == 0){printf("\n你呢,同学?\n\n");}//如果吃else{//选小炒配料printf("同学,有8、9、10元的配料,你要几元的配料呀?:>");int input1 = 0;scanf("%d",&input1);int j = 0;switch (input1){case 8:printf("同学,选一下配料。\n");for (j = 4; j > 0; j--){printf("这个。\n");}input = 0;break;case 9:printf("同学,选一下配料。\n");for (j = 5; j > 0; j--){printf("这个。\n");}input = 0;break;case 10:printf("同学,选一下配料。\n");for (j = 6; j > 0; j--){printf("这个。\n");}input = 0;break;}}} while (!input); //非0表示真,0表示假return 0;
}

运行结果:👉

要吃什么吗,靓仔?
******* 1、炒面 *******
******* 2、炒饭 *******
******* 3、炒粉 *******
**** 0、不了,谢谢 ****
请选择:>0你呢,同学?******* 1、炒面 *******
******* 2、炒饭 *******
******* 3、炒粉 *******
**** 0、不了,谢谢 ****
请选择:>1
同学,有8、9、10元的配料,你要几元的配料呀?:>8
同学,选一下配料。
这个。
这个。
这个。
这个。
******* 1、炒面 *******
******* 2、炒饭 *******
******* 3、炒粉 *******
**** 0、不了,谢谢 ****
请选择:>2
同学,有8、9、10元的配料,你要几元的配料呀?:>9
同学,选一下配料。
这个。
这个。
这个。
这个。
这个。
******* 1、炒面 *******
******* 2、炒饭 *******
******* 3、炒粉 *******
**** 0、不了,谢谢 ****
请选择:>

六、后记 

这个do - while循环常用于菜单栏的弹出,之后如果有写设计游戏库的博文的话,会用到。 

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

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

相关文章

【Android】获取备案所需的公钥以及签名MD5值

目录 重要前提 获取签名MD5值 获取公钥 重要前提 生成jks文件以及gradle配置应用该文件。具体步骤请参考我这篇文章&#xff1a;【Android】配置Gradle打包apk的环境_generate signed bundle or apk-CSDN博客 你只需要从头看到该文章的配置build.gradle&#xff08;app&…

25重庆长安深蓝控制器开发面试经验 深蓝最常见面试问题总结

【面试经历】 秋招气氛组选手的第一场面试,9.17网申,9.24电话约面,9.26线上面试。问得很细,全长约1个小时 1. 自我介绍、项目介绍 2.项目细节,遇到了哪些困难;有没有PCB设计经验DC-DC芯片选型,电源噪声的原因、怎么消除、 3.画BUCK和BOOST拓扑图,讲原理 4.了解MCU的主…

西电25考研 VS 24考研专业课大纲变动汇总

01专业课变动 西安电子科技大学专业课学长看到953网络安全基础综合变为 893网络安全基础综合&#xff0c;这是因为工科要求都必须是8开头的专业课&#xff0c;里面参考课本还是没变的&#xff0c;无非就是变了一个名字 对于其他变动专业课也是同理的 02专业课考纲内容变化 对于…

uniapp中检测应用更新的两种方式-升级中心之uni-upgrade-center-app

uniapp一个很是用的功能&#xff0c;就是在我们发布新版本的app后&#xff0c;需要提示用户进行app更新&#xff0c;并告知用户我们新版的app更新信息&#xff0c;以使得用户能及时使用上我们新开发的功能&#xff0c;提升用户的实用度和粘性。注意:这个功能只能在app端使用 效…

创建django项目时,不同的编译类型有什么区别

这里主要提及的是 project venv 和 Custom environment 两种类型。 简单来说&#xff0c;project venv 是Python 3.3及以上版本中自带的虚拟环境管理工具&#xff0c;使用venv可以为每个项目创建一个独立的环境&#xff1a;python -m venv myprojectenv &#xff08;项目名后e…

【3D目标检测】激光雷达和相机联合标定(一)——ROS同步解包

ROS同步解包 引言1 鱼香ROS一键安装ros-docker脚本&#xff1a;2 指定目录映射3 数据解包3.1 解包脚本3.2 依赖安装3.3 运行脚本&#xff0c;解包 引言 总结步骤如下&#xff1a; 采集同步数据&#xff1a;ROS录制&#xff08;推荐&#xff09;&#xff0c;或者代码同步触发采…

如何使用工具删除 iPhone 上的图片背景

在 iPhone 上删除背景图像变得简单易行。感谢最近 iOS 更新中引入的新功能。如今&#xff0c;iOS 用户现在可以毫不费力地删除背景&#xff0c;而无需复杂的应用程序。在这篇文章中&#xff0c;您将学习如何使用各种方法去除 iPhone 上的背景。这可确保您可以选择最适合您偏好的…

通信工程学习:什么是IP网际协议

IP&#xff1a;网际协议 IP网际协议&#xff08;Internet Protocol&#xff0c;简称IP&#xff09;是整个TCP/IP协议栈中的核心协议之一&#xff0c;它负责在网络中传送数据包&#xff0c;并提供寻址和路由功能。以下是对IP网际协议的详细解释&#xff1a; 一、对IP网际协议的…

哈尔滨自闭症学校寄宿条件与优势解析

自闭症儿童的希望之光&#xff1a;广州星贝育园寄宿制学校深度解析 在当今社会&#xff0c;自闭症儿童作为一群需要特别关注和照顾的群体&#xff0c;其教育与康复问题日益受到社会各界的重视。自闭症儿童不仅需要专业的康复训练&#xff0c;还需要一个稳定、温馨且充满爱的环…

Java:插入排序

目录 排序的概念 插入排序 直接插入排序 哈希排序 排序的概念 排序&#xff1a;所谓的排序&#xff0c;就是使一串记录&#xff0c;按照某个或某些关键字的大小&#xff0c;递增或递减的排列起来的操作。 稳定性&#xff1a;假定在待排序的记录序列中&#xff0c;存在多个…

【设计模式-解释模式】

定义 解释器模式是一种行为设计模式&#xff0c;用于定义一种语言的文法&#xff0c;并提供一个解释器来处理该语言的句子。它通过为每个语法规则定义一个类&#xff0c;使得可以将复杂的表达式逐步解析和求值。这种模式适用于需要解析和执行语法规则的场景。 UML图 组成角色…

Redis中String类型的常用命令(append,getrenge,setrange等命令)

Redis----String命令 前言.常见的String存储类型. 常见命令1. set 命令2. get 命令3. mget命令与mset命令4. setnx命令5. setex与psetex命令6. incr与incrby与incrbyfloat命令7. decr与decrby命令8. append命令9. getrange和setrange命令10. strlen命令. 前言. 常见的String存…

关于Generator,async 和 await的介绍

在本篇文章中我们主要围绕下面几个问题来介绍async 和await &#x1f370;Generator的作用&#xff0c;async 及 await 的特点&#xff0c;它们的优点和缺点分别是什么&#xff1f;await 原理是什么&#xff1f; &#x1f4c5;我的感受是我们先来了解Generator&#xff0c;在去…

【AI学习】Mamba学习(二):线性注意力

上一篇《Mamba学习&#xff08;一&#xff09;&#xff1a;总体架构》提到&#xff0c;Transformer 模型的主要缺点是&#xff1a;自注意力机制的计算量会随着上下文长度的增加呈平方级增长。所以&#xff0c;许多次二次时间架构&#xff08;指一个函数或算法的增长速度小于二次…

linux下yum安装时出现Loaded plugins: fastestmirror的解决办法

一、centos7修改源 在CentOS 7中&#xff0c;修改系统软件源可以通过编辑/etc/yum.repos.d/目录下的.repo文件来实现。以下是一个基本的步骤和示例代码&#xff0c;用于将默认的软件源修改为阿里云的源。 备份当前的CentOS-Base.repo文件&#xff1a; sudo cp /etc/yum.repos.…

PD协议芯片ECP5701+充电管理芯片+升压芯片搭配应用TYPE-C口充电及升压供电系统

以往的电子设备需要有专门的电源适配器来供电&#xff0c;不仅需要大家区分不同设备的充电器&#xff0c;还要专门找地方来放置&#xff0c;还给用户带来了诸多不便。然而&#xff0c;TYPE-C接口&#xff0c;全称USB Type-C&#xff0c;迅速取代了传统的USB接口&#xff0c;成为…

[linux 驱动]input输入子系统详解与实战

目录 1 描述 2 结构体 2.1 input_class 2.2 input_dev 2.4 input_event 2.4 input_dev_type 3 input接口 3.1 input_allocate_device 3.2 input_free_device 3.3 input_register_device 3.4 input_unregister_device 3.5 input_event 3.6 input_sync 3.7 input_se…

排序算法剖析

文章目录 排序算法浅谈参考资料评价指标可视化工具概览 插入排序折半插入排序希尔排序冒泡排序快速排序简单选择排序堆排序归并排序基数排序 排序算法浅谈 参考资料 数据结构与算法 评价指标 稳定性&#xff1a;两个相同的关键字排序过后相对位置不发生变化时间复杂度空间复…

C# Blazor Server 调用海康H5Player播放摄像头画面

目标 调用海康综合安防平台api&#xff0c;通过摄像头的cameraIndexCode调用【获取监控点预览取流URLv2】api&#xff0c;得到websocket 的url&#xff0c;然后在blazor server中使用htplayer.js播放摄像头实时画面。 步骤 根据摄像头名字&#xff0c;调用【查询监控点列表v2…

python配置环境变量

方法一&#xff1a;首先卸载重新安装&#xff0c;在安装时勾选增加环境变量 方法二&#xff1a;我的电脑-属性-高级系统配置 手动添加环境变量&#xff0c;路径为python的安装路径 检查&#xff1a;查看环境变量是否安装成功 安装第三方lib winr&#xff0c;输入cmd pip ins…