P3-4.【结构化程序设计】第四节——知识要点:break、continue和goto辅助循环设计语句

知识要点:break、continue和goto辅助循环设计语句

视频:

P3-4.1.【结构化程序设计】第四节——知识要点:break、continue和goto辅助循环设计语句

P3-4.2.【结构化程序设计】第四节——知识要点:break、continue和goto辅助循环设计语句

 

目录

一、任务分析

二、必备知识与理论

三、任务实施


一、任务分析

苹果2.5元1个,橘子0.6元1个,香蕉0.8元1个, 100元买苹果、橘子和香蕉共100个,每种水果各买多少?

基本思路为:假设apple、orange和banana分别代表苹果、橘子和香蕉的数量,则有:

       apple+orange+banana=100

       2.5*apple+0.6*orange+banana*0.8=100

有3个未知数,只有两个方程,要解决此类问题,可用穷举的方法。

二、必备知识与理论

1. 循环的嵌套

一个循环体内又包含另一个完整的循环结构,称为循环的嵌套。内嵌的循环中还可以嵌套循环,这就是多层循环。

【例3.8】打印九九乘法表。程序代码如下:

#include <stdio.h>main( ){  int  i,j;for(i=1;i<=9;i++){ for(j=1;j<=i;j++)printf("%d×%d=%-3d",i,j,i*j);printf("\n");}}

运行结果:

1×1=1  

2×1=2  2×2=4

3×1=3  3×2=6   3×3=9    

4×1=4  4×2=8   4×3=12  4×4=16

5×1=5  5×2=10  5×3=15  5×4=20  5×5=25

6×1=6  6×2=12  6×3=18  6×4=24  6×5=30 6×6=36

7×1=7  7×2=14  7×3=21  7×4=28  7×5=35 7×6=42 7×7=49

8×1=8  8×2=16  8×3=24  8×4=32  8×5=40 8×6=48 8×7=56 8×8=64

9×1=9  9×2=18  9×3=27  9×4=36  9×5=45 9×6=54 9×7=63 9×8=72 9×9=81

【例3.9】输出下边的图形。

分析:

(1)确定输出行数。

(2)确定每行输出的字符个数。

(3)确定图形每行第一个字符输出的位置,即输出多少个空格。

(4)此图形可看作两个三角形的合成,也可看作一个菱形。下面的程序按一个菱形输出。

程序代码如下:

#include <stdio.h>#include <math.h>main(){ int i,j;for(i=-3;i<=3;i++)         /* 图形由7行组成 */{ for(j=1;j<=abs(i)+1;j++) /* 每行前面输出的空格数 */printf(" ");    for(j=1;j<=7-2*abs(i);j++)/*图形中每行的字符个数与行号i有关*/printf("*");printf("\n");   }         /* 每行后换行 */}

2.break语句

在前面介绍switch结构中已经使用过break语句,实际上,break语句还可以用来从循环体内跳出循环体,即提前结束循环。

break语句的一般形式为:break;

功能:当break用于switch语句中时,可使程序跳出switch而执行switch以后的语句;当break语句用于while、do…while和for循环语句中时,可使程序终止本层循环而执行循环后面的语句。

3.continue语句

continue语句的作用是结束本次循环,即跳过循环体中下面尚未执行的语句,直接进行下一次是否执行循环的判断。

continue语句的一般形式为:

continue;

4. goto语句

goto语句是一种无条件转移语句,它与if语句配合使用可以构成循环结构。一般形式为:

goto 语句标号;

其中“语句标号”是一个有效的标识符(这个标识符加上冒号“:”出现在某条语句前,用于标识程序中某个语句的位置)。

使用goto语句时应注意以下两个问题:

(1)goto语句虽然也可以构成循环结构,但在结构化程序设计中,不提倡使用goto语句,因为滥用goto语句将使程序流程无规律,可读性差。因此在编写程序时应尽量避免使用goto语句。

(2)goto语句主要有两个用途:一是与if语句一起构成循环结构,二是从循环体内跳到循环体外,一般不宜采用,只有在不得已时才使用。

三、任务实施

现在来完成本节任务。假设apple、orange和banana分别代表苹果、橘子和香蕉的数量,则有:       apple+orange+banana=100

       2.5*apple+0.6*orange+banana*0.8=100

分析:(1)每种水果的数量在1到100之间,苹果2.5元一个,100元最多买40个。

(2)若apple和orange各取一个值,则:banana=100-apple-orange。

程序代码如下:

#include <stdio.h>main(){ int apple,orange,banana,m,n;printf("请输入购买数量,钱数:");scanf("%d,%d",&n,&m);printf("%s\t%s\t%s\n","apple","orange","banana");apple=1;while(apple<40){ orange=1;while(orange<100){ banana=n-apple-orange;if(2.5*apple+0.6*orange+banana*0.8==m)printf("%d\t%d\t%d\n",apple,orange,banana);orange=orange+1; }apple=apple+1; }}

外循环变量apple每取一个值,内循环变量orange都要从1取到100,内循环体中的语句if(2.5*apple+0.6*orange+banana*0.8==100)共执行40*100次。

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

灵神DAY3 KMP算法

具体解释&#xff1a; 1. 真前缀和真后缀的定义 前缀&#xff1a;字符串的起始部分。例如&#xff0c;字符串 s "aabcaa" 的前缀是 ""、"a"、"aa"、"aab"、"aabc"、"aabca"、"aabcaa"。 …

MySQL5.7.37安装配置

1.下载MySQL软件包并解压 2.配置环境变量 3.新建my.ini文件并输入信息 [mysqld] #端口号 port 3306 #mysql-5.7.27-winx64的路径 basedirC:\mysql-5.7.37\mysql-5.7.37-winx64 #mysql-5.7.27-winx64的路径\data datadirC:\mysql-5.7.37\mysql-5.7.37-winx64\data #最大连接数…

基于单片机的手持金属探测仪设计

本设计以STM32F103C8T6单片机为核心&#xff0c;通过金属线圈感应器来判断是否存在金属&#xff0c;控制OLED显示屏显示金属探测仪的灵敏度和参考值&#xff0c;通过电源模块将220V转化为3.3V对单片机进行供电&#xff0c;还可以通过按键对金属探测仪的灵敏度进行设置&#xff…

P1197 星球大战(并查集+逆向思维)

这是今天写的比较有价值的一道题&#xff0c;晚上写了大概一个多小时&#xff0c;主要还是在debug&#xff0c;出得很妙&#xff0c;好题&#x1f44d; P1197 [JSOI2008] 星球大战 - 洛谷 | 计算机科学教育新生态 思路&#xff1a;如果我们按照顺序一个一个的去计算毁灭一个星…

深度学习驱动的蛋白质设计技术与前沿实践-从基础到尖端应用

RoseTTAFold&#xff0c;作为David Baker教授团队早期开发的蛋白质结构预测工具&#xff0c;在学术界与工业界广受认可。然而&#xff0c;随着时间推移&#xff0c;仅局限于预测已知结构的蛋白质并不能满足生物医药和生物工程领域对创新设计的需求。这促使David Baker教授团队继…

Linux 进程信号初识

目录 0.前言 1.什么是信号 1.1生活中的信号 1.2 OS中的信号 2.认识信号 2.1信号概念 2.2查看信号 2.3 signal函数 2.4代码示例 3. 信号处理方式 3.1 忽略信号 3.2 默认处理 3.3 自定义处理 4.小结 &#xff08;图像由AI生成&#xff09; 0.前言 在之前的学习中&#xff0c;我…

SpringBoot(二十五)SpringBoot集成JRebel实现热更新

今天来安装一个IDEA代码热更新的插件,一个神器。 我们之前也为IDEA配置了热更新,使用的是spring-boot-devtools插件。具体请移步《SpringBoot(一)创建项目及配置IDEA热更新》 上边这个热更新对于单模块项目是没有问题的,但是对于多模块项目可能就无能无能为力了,而且,随…

MATLAB中的绘图技巧

MATLAB作为一种强大的科学计算软件&#xff0c;不仅可以进行数据分析和模拟&#xff0c;还具有出色的绘图功能。本文介绍若干在MATLAB中绘图的技巧和方法&#xff0c;帮助使用者更好地呈现数据和结果 文章目录 基本绘图函数高级绘图技巧三维绘图动态绘图绘图工具结语 基本绘图函…

java八股-AQS,Reentrantlock

什么是AQS&#xff1f; 难度&#xff1a;★★★☆☆ 考频&#xff1a;★★★☆☆ 注意这个队列是双向队列&#xff0c;每次有线程释放锁了之后&#xff0c;会有下一个线程来&#xff0c;以及队列头元素&#xff0c;如果设置的是公平锁&#xff0c;那么是等了很久的头元素先获…

python——模块 迭代器 正则

一、python模块 先创建一个 .py 文件&#xff0c;这个文件就称之为 一个模块 Module。 使用模块的优点&#xff1a; 模块化编程&#xff0c;多文件编程 1.2 模块的使用 1.2.1 import语句 想要B.py文件中&#xff0c;使用A.py文件&#xff0c;只需要在B.py文件中使用关键字…

STL之mapset|AVL树

STL之map&set|AVL树 set&map搜索二叉树实现代码 set的使用map的使用set&map的模拟实现&#xff08;见红黑树篇&#xff09; AVL树AVL树的模拟实现 set&map 前言&#xff1a;stl库中set和map的底层都是红黑树&#xff0c;一种平衡搜索二叉树&#xff0c;是我下…

使用阿里云快速搭建 DataLight 平台

使用阿里云快速搭建 DataLight 平台 本篇文章由用户 “闫哥大数据” 分享&#xff0c;B 站账号&#xff1a;https://space.bilibili.com/357944741?spm_id_from333.999.0.0 注意&#xff1a;因每个人操作顺序可能略有区别&#xff0c;整个部署流程如果出现出入&#xff0c;以…

OceanBase 分区表详解

1、分区表的定义 在OceanBase数据库中&#xff0c;普通的表数据可以根据预设的规则被分割并存储到不同的数据区块中&#xff0c;同一区块的数据是在一个物理存储上。这样被分区块的表被称为分区表&#xff0c;而其中的每一个独立的数据区块则被称为一个分区。 如下图所示&…

代码随想录算法训练营第三十八天 | 322.零钱兑换 279.完全平方数 139.单词拆分 多重背包以及背包总结

LeetCode 322.零钱兑换&#xff1a; 文章链接 题目链接&#xff1a;322.零钱兑换 思路&#xff1a; 首先分析题目&#xff0c;每种硬币的数量是无限的&#xff0c;因此为完全背包问题&#xff1b;又要求返回的是最少硬币个数&#xff0c;因此与组合数/排列数无关&#xff0c…

计算机网络WebSocket——针对实习面试

目录 计算机网络WebSocket什么是WebSocket&#xff1f;WebScoket和HTTP协议的区别是什么?说明WebSocket的优势和使用场景&#xff1f;说明WebSocket的建立连接的过程&#xff1f; 计算机网络WebSocket 什么是WebSocket&#xff1f; WebSocket是一个网络通信协议&#xff0c;提…

在Ubuntu 24.04 LTS上安装飞桨PaddleX

前面我们介绍了《在Windows用远程桌面访问Ubuntu 24.04.1 LTS》本文接着介绍安装飞桨PaddleX。 PaddleX 3.0 是基于飞桨框架构建的一站式全流程开发工具&#xff0c;它集成了众多开箱即用的预训练模型&#xff0c;可以实现模型从训练到推理的全流程开发&#xff0c;支持国内外多…

LM2 : A Simple Society of Language Models Solves Complex Reasoning

文章目录 题目摘要简介相关工作方法论实验结果结论局限性 题目 LM2&#xff1a;简单的语言模型社会解决复杂推理问题 论文地址&#xff1a;https://aclanthology.org/2024.emnlp-main.920/ 项目地址&#xff1a; https://github.com/LCS2-IIITD/Language_Model_Multiplex 摘要…

(三十三)队列(queue)

文章目录 1. 队列&#xff08;queue&#xff09;1.1 定义1.2 函数1.3 习题1.3.1 例题&#xff08;周末舞会&#xff09; 2. 双向队列&#xff08;deque&#xff09;2.1 定义2.2 函数2.3 题目2.3.1 例题&#xff08;打BOSS&#xff09; 1. 队列&#xff08;queue&#xff09; 队…

web——upload-labs——第二关

MIME验证 MIME&#xff08;Multipurpose Internet Mail Extensions&#xff09;验证是指在互联网传输中&#xff0c;通过检查数据的MIME类型来确保数据格式的正确性和安全性。MIME最初是为了扩展电子邮件的功能&#xff0c;让邮件支持多种格式&#xff0c;如文本、图片、音频等…

Vue3 -- 集成sass【项目集成5】

集成sass&#xff1a; 看过博主的 配置styleLint工具应该已经安装过 sass sass-loader 了&#xff0c;所以我们只需要加上我们的 lang"scss"即可。 <style scoped lang"scss"></style>给项目添加全局样式文件&#xff1a; 在src文件夹下创建…