【C语言程序设计】循环结构程序设计

目录

前言

一、程序设计第一题

二、程序设计第二题

三、程序设计第三题

总结


🌈嗨!我是Filotimo__🌈。很高兴与大家相识,希望我的博客能对你有所帮助。

💡本文由Filotimo__✍️原创,首发于CSDN📚。

📣如需转载,请事先与我联系以获得授权⚠️。

🎁欢迎大家给我点赞👍、收藏⭐️,并在留言区📝与我互动,这些都是我前进的动力!

🌟我的格言:森林草木都有自己认为对的角度🌟。

前言

1. 循环结构是程序设计中的重要概念,它允许我们重复执行一段代码多次,从而实现一些重复性的任务。

2. 在C语言中,循环结构有三种主要形式:for循环、while循环和do-while循环。

(1) for循环适用于循环次数已知的场景,通过控制循环变量的初始值、循环条件和每次循环后的操作来控制循环过程。
(2)while循环适用于循环次数不确定的情况,它在循环开始前先判断循环条件,如果条件满足,则执行循环体内的代码,否则跳出循环。
(3)do-while循环与while循环类似,不同之处在于它会先执行一次循环体内的代码,然后再判断循环条件是否满足,如果满足则继续执行,否则跳出循环。

3. 在循环中,我们可以使用控制流程语句来改变循环执行的顺序,比如`break`语句可以用于提前结束循环,`continue`语句可以用于跳过当前循环的剩余代码并进入下一次循环。

4. 循环结构的正确使用可以大大简化程序的代码量,提高程序的效率和可读性。但需要注意避免陷入无限循环的情况,确保循环条件可以正确终止循环。


一、程序设计第一题

 输出100以内能被3或5整除的数。

用while语句实现:

#include <stdio.h>int main() {int i = 1;printf("能被3或5整除的数有: ");while(i <= 100) {if(i % 3 == 0 || i % 5 == 0) {printf("%d ", i);}i++;}return 0;
}

用do…while语句实现:

#include <stdio.h>int main() {int i = 1;printf("能被3或5整除的数有: ");do {if(i % 3 == 0 || i % 5 == 0) {printf("%d ", i);}i++;} while(i <= 100);return 0;
}

用for语句实现:

#include <stdio.h>int main() {int i;printf("能被3或5整除的数有: ");for (i = 1; i <= 100; i++) {if (i % 3 == 0 || i % 5 == 0) {printf("%d ", i);}}return 0;
}

运行结果:

二、程序设计第二题

输出下列的前20项1,2,5,10,21,42,85,170,341,682,…

用while语句实现:

#include <stdio.h>int main() {int a = 0, b = 0;while (a <= 19) {a = a + 1;if (a % 2 != 0)b = 2 * b + 1;elseb = 2 * b;printf("%d\n", b);}return 0;
}

程序中使用了两个变量ab,其中a代表项数,b代表数列中每一项的值。在每次循环中,首先将a自增1,然后通过判断a是否为奇数来选择相应的计算公式。如果a是奇数,则使用b = 2 * b + 1计算新的 b 的值;如果a是偶数,则使用b = 2 * b 计算新的 b 的值。每次循环都输出当前的 b 的值。

用do…while语句实现:

#include <stdio.h>int main() {int a = 0, b = 0;int count = 0;do {count++;if (count % 2 != 0)b = 2 * b + 1;elseb = 2 * b;printf("%d\n", b);} while (count <= 19);return 0;
}

用for语句实现:

#include <stdio.h>int main() {int b = 0;for (int a = 1; a <= 20; a++) {if (a % 2 != 0)b = 2 * b + 1;elseb = 2 * b;printf("%d\n", b);}return 0;
}

运行结果:

三、程序设计第三题

每个苹果0.8元,第一天买2个苹果,第二天开始,每天买前一天的2倍,直至购买的苹果个数达到不超过100的最大值。编写程序求总共要花多少钱?

用while语句实现:

#include <stdio.h>int main()
{double price = 0.8;int total = 0;int count = 2;int i = 1;while (count <= 100){total += count;count *= 2;i++;}printf("总共需要花费 %.2f 元\n", total * price);return 0;
}

用do…while语句实现:

#include <stdio.h>int main()
{double price = 0.8;int total = 0;int count = 2;int i = 1;do{total += count;count *= 2;i++;} while (count <= 100);printf("总共需要花费 %.2f 元\n", total * price);return 0;
}

用for语句实现:

#include <stdio.h>int main()
{double price = 0.8;int total = 0;int count = 2;int i;for (i = 1; count <= 100; i++){total += count;count *= 2;}printf("总共需要花费 %.2f 元\n", total * price);return 0;
}

运行结果:


总结

循环结构的三种控制语句:
1.while语句:在指定条件为真时重复执行语句块。先判断条件是否为真,如果为真,则执行循环中的语句块,然后再次判断条件,以此类推。如果条件为假,则跳过循环。适用于不确定循环次数的情况。

2.do…while语句:在条件判断之前先执行一次循环语句块,然后再根据条件来决定是否继续执行循环。先执行一次循环体,然后判断条件是否为真,如果为真,则继续执行循环,否则退出循环。适用于至少要循环一次的情况。

3.for语句:通过初始化表达式、循环条件、循环控制表达式和语句块组成。先执行初始化表达式,然后判断循环条件是否为真,如果为真,则执行循环体内的语句块,再执行循环控制表达式,以此类推。适用于循环次数已知的情况。

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

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

相关文章

Ubuntu 22.04 安装 OCI CLI

Ubuntu 22.04 安装 OCI CLI 安装命令 安装命令 wget https://codeload.github.com/oracle/oci-cli/zip/master -O oci-cli.zip pip install oci-cli.zip完结&#xff01;

Armv8/Armv9从入门到精通-课程介绍

通知&#xff0c;Arm二期&#xff0c;咱们也有大合集PDF了&#xff0c;共计1587页&#xff0c;还未完成&#xff0c;后续持续更新和优化中。为了方便大家阅读、探讨、做笔记&#xff0c;特意整了此合集PPT&#xff0c;为了增加标签目录&#xff0c;还特意开了福兮阅读器会员。 …

宇视科技视频监控 main-cgi 文件信息泄露漏洞

宇视科技视频监控 main-cgi 文件信息泄露漏洞 一、产品简介二、漏概述三、复现环境四、漏洞检测手工抓包自动化检测 免责声明&#xff1a;请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失&#…

java实现局域网内视频投屏播放(一)背景/需求

一 背景 我们在用电视上投屏电影或者电视剧时&#xff0c;如果没有vip&#xff0c;用盗版电影网站投屏的话会有两个问题&#xff0c;1:他们网站没有投屏功能。2:卡&#xff01;&#xff01;&#xff01;。还有就是不能随心所欲的设置自己先要自动播放的视频列表&#xff08;如…

防止root用户误删除指令

在CentOS 7或其他Linux系统中&#xff0c;防止root用户误删除关键文件或目录的一种常见做法是使用chattr命令设置文件的"i"属性&#xff0c;使其变为不可变。这将防止文件被删除、重命名、链接或更改其内容。 chattr i /path/to/your/file_or_directory例如&#xf…

【C++】输入输出流 ⑩ ( 文件流 | 文件流打开方式参数 | 文件指针 | 组合打开方式 | 文件打开失败 )

文章目录 一、文件流打开方式参数1、文件流打开方式参数2、文件指针3、组合打开方式4、文件打开失败 一、文件流打开方式参数 1、文件流打开方式参数 文件流打开方式参数 : ios::in : 以只读方式打开文件 ;ios::out : 以只写方式打开文件 , 默认打开方式 , 如果文件已存在则清…

PHP中什么是Composer?

Composer 是一个用于 PHP 项目依赖管理的工具。它允许你定义、安装和管理 PHP 项目所需的外部库和工具。Composer 是一个命令行工具&#xff0c;通过一个名为 composer.json 的配置文件来管理项目的依赖关系。 主要功能包括&#xff1a; 依赖管理&#xff1a; Composer 可以解…

【C语言程序设计】选择结构程序设计

目录 前言 一、程序阅读 二、程序改错 三、程序设计 总结 &#x1f308;嗨&#xff01;我是Filotimo__&#x1f308;。很高兴与大家相识&#xff0c;希望我的博客能对你有所帮助。 &#x1f4a1;本文由Filotimo__✍️原创&#xff0c;首发于CSDN&#x1f4da;。 &#x1f4e3;如…

[Linux] Tomcat

一、Tomcat相关知识 1.1 Tomcat的简介 Tomcat 是 Java 语言开发的&#xff0c;Tomcat 服务器是一个免费的开放源代码的 Web 应用服务器&#xff0c;是 Apache 软件基金会的 Jakarta 项目中的一个核心项目&#xff0c;由 Apache、Sun 和其他一些公司及个人共同开发而成。Tomc…

19.java绘图

A.Graphics类 Graphics类是java.awt包中的一个类&#xff0c;它用于在图形用户界面&#xff08;GUI&#xff09;或其他图形应用程序中进行绘制。该类通常与Component的paint方法一起使用&#xff0c;以在组件上进行绘制操作。 一些Graphics类的常见用法和方法&#xff1a; 在组…

GEE机器学习——利用分类和回归树(Classification and Regression Trees,CART)土地分类分析

分类和回归树(Classification and Regression Trees,CART)方法 分类和回归树(Classification and Regression Trees,CART)是一种常用的机器学习算法,用于解决分类和回归问题。CART算法通过构建一棵决策树来对数据进行分类或回归预测。 CART方法的具体步骤如下: 1. 数…

Flask维护者:李辉

Flask维护者&#xff1a;李辉&#xff0c; 最近看b站的flask相关&#xff0c;发现了这个视频&#xff1a;[PyCon China 2023] 濒危 Flask 扩展拯救计划 - 李辉_哔哩哔哩_bilibili 李辉讲他在维护flask之余&#xff0c;开发了apiflask这个依托flask的框架。GitHub - apiflask/a…

如何通过 SSH 访问 VirtualBox 的虚机

VirtualBox 是一款免费虚机软件。在用户使用它安装了 linux 以后&#xff0c;它默认只提供了控制台的管理画面。 直接使用控制台管理 Linux 没有使用诸如 putty 或者 vscode 这样的 ssh 远程管理工具方便。那么可不可以直接使用 ssh 访问 VirtualBox 上的 Linux 呢&#xff1f…

Vue3按需引入element plus 以及icon

最近在自学Vue3&#xff0c;打算做一个纯前端的小东西&#xff0c;记录一下element-plus的安装和使用。以下是安装使用过程&#xff0c;以及踩过的坑。 一、安装element-plus及icon npm i element-plus element-plus/icons-vue -S 二、安装按需导入的插件 npm i unplugin-…

云计算在数据处理中的应用

云计算在数据处理中的应用 一、引言 随着数据规模的爆炸式增长&#xff0c;数据处理成为了一个巨大的挑战。云计算作为一种灵活、可扩展的计算模式&#xff0c;为数据处理提供了强大的支持。本文将探讨云计算在数据处理中的应用。 二、云计算与数据处理 云计算是一种将计算资…

【Spark精讲】Spark作业执行原理

基本流程 用户编写的Spark应用程序最开始都要初始化SparkContext。 用户编写的应用程序中&#xff0c;每执行一个action操作&#xff0c;就会触发一个job的执行&#xff0c;一个应用程序中可能会生成多个job执行。一个job如果存在宽依赖&#xff0c;会将shuffle前后划分成两个…

同时安装5.7和8.0版本的MySQL

MySQL57安装 下载mysql-5.7.38-winx64.msi&#xff0c;安装管理员身份进入到安装文件夹的bin目录下 如何以管理员身份进入D盘 D:cd D:\Programs\MySQL\MySQL Server 5.7\bin把my.ini复制到mysql5.7安装目录下后 初始化 把配置文件放在安装目录下后&#xff0c;初始化的时候会…

玻色量子袁为出席中国移动第四届科技周量子计算算法与应用分论坛

9月12日&#xff0c;中国移动第四届科技周“量子计算算法与应用”分论坛在北京成功举办&#xff0c;中国移动研究院院长黄宇红发表致辞&#xff0c;中国移动未来研究院院长崔春风全程主持。玻色量子作为光量子计算领域真机测试与场景应用的标杆企业应邀出席&#xff0c;玻色量子…

【Matlab】如何将二阶线性微分方程进行Laplace变换得到传递函数

二阶线性微分方程进行Laplace变换 前言正文代码实现 前言 二阶线性微分方程: 一个二阶线性微分方程通常可以写成如下形式: y ′ ′ ( t ) p ( t ) y ′ ( t ) q ( t ) y ( t ) f ( t ) y^{\prime \prime}(t)p(t) y^{\prime}(t)q(t) y(t)f(t) y′′(t)p(t)y′(t)q(t)y(t)f(…

sleep和wait区别,并且查看线程运行状态

一、sleep和wait区别 区别一&#xff1a;语法使用不同 wait 方法必须配合 synchronized 一起使用&#xff0c;不然在运行时就会抛出 IllegalMonitorStateException 的异常 而 sleep 可以单独使用&#xff0c;无需配合 synchronized 一起使用。 区别二&#xff1a;所属类不同…