当前位置: 首页 > news >正文

【C语言程序设计——循环程序设计】枚举法换硬币(头歌实践教学平台习题)【合集】

目录😋

任务描述

相关知识

 一、循环控制 / 跳转语句的使用

1. 循环控制语句(for 循环)

2. 循环控制语句(while 循环)

3. 跳转语句(break 语句)

4. 跳转语句(continue 语句)

二、循环嵌套语句

1. 基本概念

2. for 循环嵌套

3. while 循环嵌套

4. do - while 循环嵌套

5. 注意事项

编程要求

测试说明

通关代码

测试结果


任务描述

本关任务:运用枚举法求解硬币等额兑换的程序。


相关知识

为了完成本关任务,你需要掌握:

  1. 循环控制/跳转语句
  2. 循环嵌套语句;

 一、循环控制 / 跳转语句的使用

1. 循环控制语句(for 循环)
  • 基本原理for循环是一种常用的循环结构,它允许您指定一个初始化表达式、一个循环条件和一个更新表达式。语法格式为for(初始化表达式; 循环条件; 更新表达式)。初始化表达式在循环开始时执行一次,用于初始化循环变量。循环条件在每次循环迭代开始时进行检查,如果为真,则执行循环体中的代码。更新表达式在每次循环体执行完后执行,用于更新循环变量。
  • 示例代码
    #include <stdio.h>
    int main() {// 打印1到10的数字for (int i = 1; i <= 10; i++) {printf("%d ", i);}printf("\n");return 0;
    }
    
2. 循环控制语句(while 循环)
  • 基本原理while循环在循环开始时检查循环条件。只要条件为真,就会执行循环体中的代码。语法格式为while(循环条件)。循环条件是一个表达式,它返回一个布尔值(真或假)。在循环体中,通常需要包含一些能够改变循环条件的语句,否则可能会导致无限循环。
  • 示例代码
    #include <stdio.h>
    int main() {int i = 1;while (i <= 10) {printf("%d ", i);i++;}printf("\n");return 0;
    }
    
3. 跳转语句(break 语句)
  • 基本原理break语句用于立即跳出当前循环(forwhiledo - while)或switch语句。当程序执行到break语句时,循环或switch语句会立即终止,程序控制流将跳转到循环或switch语句后的下一条语句。
  • 示例代码(在循环中使用 break)
    #include <stdio.h>
    int main() {for (int i = 1; i <= 10; i++) {if (i == 5) {break;}printf("%d ", i);}printf("\n");return 0;
    }
    
4. 跳转语句(continue 语句)
  • 基本原理continue语句用于跳过当前循环迭代的剩余部分,直接开始下一次循环迭代。当程序执行到continue语句时,循环体中continue语句之后的代码将不会被执行,而是直接跳转到循环的更新表达式(对于for循环)或循环条件检查(对于whiledo - while循环)。
  • 示例代码(在循环中使用 continue)
    #include <stdio.h>
    int main() {for (int i = 1; i <= 10; i++) {if (i == 5) {continue;}printf("%d ", i);}printf("\n");return 0;
    }

二、循环嵌套语句

1. 基本概念

循环嵌套是指在一个循环语句的循环体中又包含另一个循环语句。在 C 语言中,for循环、while循环和do - while循环都可以相互嵌套。它主要用于处理具有多重循环结构的问题,例如二维数组的遍历、打印各种有规律的图案等。

2. for 循环嵌套
  • 语法结构

最常见循环嵌套结构是for循环嵌套for循环。其基本形式如下:

for(初始化表达式1; 条件表达式1; 更新表达式1) {// 外层循环体for(初始化表达式2; 条件表达式2; 更新表达式2) {// 内层循环体}
}

下面的代码打印了一个简单的乘法口诀表:

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

其中,外层for循环控制行数(i从 1 到 9),内层for循环控制每行乘法口诀的列数(j从 1 到当前行号i)。每次内层循环结束后,会输出一个换行符,形成了一个完整的乘法口诀表。

3. while 循环嵌套
  • 语法结构

基本形式如下:

while(条件表达式1) {// 外层循环体while(条件表达式2) {// 内层循环体}
}

例如,下面的代码用于计算两个数的最大公因数,使用的是辗转相除法(欧几里得算法),可以用while循环嵌套来实现:

#include <stdio.h>
int main() {int a, b, temp;printf("请输入两个整数:");scanf("%d %d", &a, &b);while (b!= 0) {temp = a % b;a = b;b = temp;}printf("最大公因数是:%d\n", a);return 0;
}

这里,外层while循环用于不断更新ab的值,直到b变为 0,内层的操作(计算余数并更新ab)在每次外层循环迭代时都会执行。

4. do - while 循环嵌套
  • 语法结构

基本形式如下:

do {// 外层循环体do {// 内层循环体} while(条件表达式2);
} while(条件表达式1);

例如,下面的代码可以用于模拟一个简单的游戏关卡选择界面,假设游戏有多个章节,每个章节有多个关卡,用户可以选择章节和关卡:

#include <stdio.h>
int main() {int chapter, level;do {printf("请选择章节(1 - 3):");scanf("%d", &chapter);if (chapter >= 1 && chapter <= 3) {do {printf("请选择章节 %d中的关卡(1 - 5):", chapter);scanf("%d", &level);if (level >= 1 && level <= 5) {printf("你选择了章节 %d的关卡 %d\n", chapter, level);} else {printf("无效的关卡选择。\n");}} while (level < 1 || level > 5);} else {printf("无效的章节选择。\n");}} while (chapter < 1 || chapter > 3);return 0;
}

其中,外层do - while循环用于确保用户选择了有效的章节(1 - 3),内层do - while循环用于确保用户在选定的章节中选择了有效的关卡(1 - 5)。

5. 注意事项
  • 循环嵌套时,要特别注意内层循环和外层循环的控制变量。它们应该相互独立,避免在内层循环中意外修改外层循环的控制变量,除非这是有意为之并且经过仔细考虑的逻辑。
  • 随着循环嵌套层数的增加,程序的复杂度也会增加。因此,在编写循环嵌套代码时,要确保代码的可读性,必要时添加注释来解释代码的功能和意图。同时,要注意循环嵌套可能带来的性能问题,例如过多的嵌套可能导致程序运行时间过长或者占用过多的内存资源。

编程要求

根据提示在右侧编辑器Begin--End之间的区域内补充必要的代码。


测试说明

平台会对你编写的代码进行测试:

预期输出:

1fen:  5 ,2fen: 10 ,5fen: 15
1fen:  5 ,2fen: 35 ,5fen:  5
1fen: 10 ,2fen: 20 ,5fen: 10
1fen: 15 ,2fen:  5 ,5fen: 15
1fen: 15 ,2fen: 30 ,5fen:  5
1fen: 20 ,2fen: 15 ,5fen: 10
1fen: 25 ,2fen: 25 ,5fen:  5
1fen: 30 ,2fen: 10 ,5fen: 10
1fen: 35 ,2fen: 20 ,5fen:  5
1fen: 40 ,2fen:  5 ,5fen: 10
1fen: 45 ,2fen: 15 ,5fen:  5
1fen: 55 ,2fen: 10 ,5fen:  5
1fen: 65 ,2fen:  5 ,5fen:  5
一共有13种

开始你的任务吧,祝你成功!


通关代码

/*6.要将一元钱换成1分、2分和5分的硬币,每种硬币的个数大于0,且为5的倍数,
编写程序计算并输出有多少种换法。*/
#include<stdio.h>
main(){int i,j,k,n=0;/************************begin***********************/for(i=1;i<100;i++){for(j=1;j<=50;j++){for(k=1;k<20;k++){if(i+2*j+5*k==100 && i%5==0 && j%5==0 && k%5==0){n++;printf("1fen: %2d ,2fen: %2d ,5fen: %2d\n",i,j,k);}}}}  /************************end************************/printf( "一共有%d种",n);
}

测试结果

在这里插入图片描述

相关文章:

【C语言程序设计——循环程序设计】枚举法换硬币(头歌实践教学平台习题)【合集】

目录&#x1f60b; 任务描述 相关知识 一、循环控制 / 跳转语句的使用 1. 循环控制语句&#xff08;for 循环&#xff09; 2. 循环控制语句&#xff08;while 循环&#xff09; 3. 跳转语句&#xff08;break 语句&#xff09; 4. 跳转语句&#xff08;continue 语句&…...

在调用 borrowObject 方法时,Apache Commons Pool 会根据连接池的配置触发一系列相关的方法

在调用 borrowObject 方法时&#xff0c;Apache Commons Pool 会根据连接池的配置触发一系列相关的方法 1. GrpcChannel 的概念 GrpcChannel 是 gRPC 客户端与服务器之间通信的核心组件。它是基于 HTTP/2 的连接&#xff0c;支持多路复用&#xff0c;即通过单个通道可以发送多…...

Linux中的tty和pts概念和区别

目录 1、什么是tty &#xff08;1&#xff09;tty的概念 &#xff08;2&#xff09;tty0 &#xff08;3&#xff09;tty1~6 2、什么是pts &#xff08;1&#xff09;pts的含义 &#xff08;2&#xff09;pts的具体解释 3、pts与 tty 设备的比较 4、设备文件的位置 1、什…...

【SOC 芯片设计 DFT 学习专栏 -- RTL 中的信号名和 Netlist 中的信号名差异】

Overview 本文将介绍 soc 设计中 RTL-to-Netlist 映射及 RTL 中的信号名和 Netlist 中的信号名差异&#xff0c; 在 SoC设计中&#xff0c;RTL-to-Netlist映射 是从RTL&#xff08;Register Transfer Level&#xff09;代码转换为Netlist的过程。这通常涉及将用硬件描述语言&…...

机器学习经典算法——线性回归

目录 算法介绍 一元线性回归模型 多元线性回归模型 ​误差项分析 相关系数 算法案例 一元线性回归预测——广告销售额案例 二元线性回归预测——血压收缩案例 多元线性回归预测——糖尿病案例 算法介绍 线性回归是利用数理统计中回归分析&#xff0c;来确定两种或两种…...

MLU上使用MagicMind GFPGANv1.4 onnx加速!

文章目录 前言一、平台环境准备二、环境准备1.GFPGAN代码处理2.MagicMind转换修改env.sh修改run.sh参数解析运行 3.修改后模型运行 前言 MagicMind是面向寒武纪MLU的推理加速引擎。MagicMind能将人工智能框架&#xff08;TensorFlow、PyTorch、Caffe与ONNX等&#xff09;训练好…...

VulnHub—potato-suncs

使用命令扫描靶机ip arp-scan -l 尝试访问一下ip 发现一个大土豆没什么用 尝试扫描一下子域名 没有发现什么有用的信息 尝试扫描端口 namp -A 192.168.19.137 -p- 尝试访问一下端口,发现都访问不进去 查看源代码发现了网页的标题 potato&#xff0c;就想着爆破一下密码 hydr…...

【Flink CDC】Flink CDC的Schema Evolution表结构演变的源码分析和流程图

Flink CDC版本&#xff1a;3.2.1 说明&#xff1a;本文从SchemaOperator接收到&#xff0c;表结构变更事件开始&#xff0c;表结构变更事件应由source端产生&#xff0c;本文不讨论。 可以先看流程图&#xff0c;研究源码。 参考文章&#xff1a; Flink cdc3.0动态变更表结构—…...

【智能算法】改进蚁狮优化算法【matlab】

目录 1 主要内容 2 部分程序 3 程序结果 下载链接 1 主要内容 该程序方法复现《改进蚁狮算法的无线传感器网络覆盖优化》两种改进算法模型&#xff0c;即原始ALO算法的基础上添加了两种改进策略&#xff1a; - 改进1&#xff1a;将原先的间断性边界收缩因子变为连续性边界…...

swagger导出json

要将 Swagger(或者 OpenAPI)文档导出为 JSON 文件,通常有几种常见的方法,具体取决于你使用的 Swagger 工具(如 Swagger UI、Swagger Editor、Swagger Hub 等)。下面列出了几种常见的导出 JSON 文件的方法。 1. 通过 Swagger UI 导出 JSON 文件 如果你在使用 Swagger UI…...

Go语言的 的引用数据类型(Reference Data Types)核心知识

Go语言的引用数据类型&#xff08;Reference Data Types&#xff09;核心知识 引言 Go语言作为一种现代编程语言&#xff0c;因其简洁的语法、强大的并发支持以及丰富的标准库而受到广泛欢迎。在Go语言中&#xff0c;数据类型可以分为值类型和引用类型。本文将深入探讨Go语言…...

JAVA解析Excel复杂表头

废话不多说&#xff0c;直接上源码。前后端都有哦&#xff5e;&#xff5e;&#xff5e;&#xff5e;&#xff5e;&#xff5e;&#xff5e;&#xff5e; 能帮到你记得点赞收藏哦&#xff5e;&#xff5e;&#xff5e;&#xff5e;&#xff5e;&#xff5e;&#xff5e;&#…...

jmeter 中 BeanShell 预处理程序、JSR223后置处理程序使用示例

1. 各个组件如何新建的&#xff1f; 2. "http请求" 组件内容样例&#xff1a; "消息体数据" 源码&#xff1a; {"task_tag": "face_detect","image_type": "base64","extra_args": [{"model"…...

我的创作纪念日——《惊变128天》

我的创作纪念日——《惊变128天》 机缘收获日常成就憧憬 机缘 时光飞逝&#xff0c;转眼间&#xff0c;我已在这条创作之路上走过了 128 天。回顾起 2024 年 8 月 29 日&#xff0c;我满怀忐忑与期待&#xff0c;撰写了第一篇技术博客《讲解LeetCode第1题&#xff1a;两数之和…...

vuedraggable 选项介绍

vuedraggable 是基于 SortableJS 的 Vue 组件&#xff0c;提供了丰富的选项来定制拖拽行为。以下是 vuedraggable 常用的选项和它们的详细说明&#xff1a; 常用选项介绍 group 配置拖拽分组。多个列表可以共享同一个分组&#xff0c;允许它们之间的项目互相拖拽。 group: { na…...

微信小程序获取后端数据

在小程序中获取后端接口数据 通常可以使用 wx.request 方法&#xff0c;以下是一个基本示例&#xff1a; // pages/index/index.js Page({data: {// 用于存储后端返回的数据resultData: [] },onLoad() {this.fetchData();},fetchData() {wx.request({url: https://your-backe…...

ThreadLocal` 的工作原理

ThreadLocal 的工作原理&#xff1a; ThreadLocal 是 Java 提供的一个类&#xff0c;它用于为每个线程提供独立的变量副本。也就是说&#xff0c;多个线程访问同一个 ThreadLocal 变量时&#xff0c;每个线程看到的值都是不同的&#xff0c;相互隔离&#xff0c;互不干扰。 T…...

数据挖掘教学指南:从基础到应用

数据挖掘教学指南&#xff1a;从基础到应用 引言 数据挖掘是大数据时代的核心技术之一&#xff0c;它从大量数据中提取有用信息和知识。本教学文章旨在为学生和初学者提供一个全面的数据挖掘学习指南&#xff0c;涵盖数据挖掘的基本概念、流程、常用技术、工具以及教学建议。…...

大模型搜索引擎增强问答demo-纯python实现

流程概览 本文使用python语言,实现了大模型搜索引擎增强问答demo。 大模型搜索引擎增强问答定义:根据问题搜索得到相关内容,拼接prompt=问题+搜索结果,将这个prompt传入大模型,得到最终的结果。 优势在于搜索引擎可以返回实时性信息,例如明日双色球开奖信息、最新八卦…...

【C语言程序设计——选择结构程序设计】按从小到大排序三个数(头歌实践教学平台习题)【合集】

目录&#x1f60b; 任务描述 编程要求 相关知识 1. 选择结构 2. 主要语句类型 3. 比较操作 4. 交换操作 测试说明 通关代码 测试结果 任务描述 本关任务&#xff1a;从键盘上输入三个数&#xff0c;请按从小到大的顺序排序并打印输出排序后的结果。 编程要求 根据提示…...

链表题解——环形链表【LeetCode】

141. 环形链表 方法一 核心思想&#xff1a; 使用一个集合 seen 来记录已经访问过的节点。遍历链表&#xff0c;如果当前节点已经存在于集合中&#xff0c;说明链表存在环&#xff1b;否则&#xff0c;将当前节点添加到集合中&#xff0c;继续遍历。如果遍历结束&#xff08;h…...

【element-ui】el-autocomplete实现 无数据匹配

文章目录 方法一&#xff1a;使用 default 插槽方法二&#xff1a;使用 empty-text 属性&#xff08;适用于列表类型&#xff09;总结 在使用 Element UI 的 el-autocomplete 组件时&#xff0c;如果你希望在没有任何数据匹配的情况下显示特定的内容&#xff0c;你可以通过自定…...

使用python实现奔跑的线条效果

效果&#xff0c;展示&#xff08;视频效果展示&#xff09;&#xff1a; 奔跑的线条 from turtle import * import time t1Turtle() t2Turtle() t3Turtle() t1.hideturtle() t2.hideturtle() t3.hideturtle() t1.pencolor("red") t2.pencolor("green") t3…...

Python_day47

作业&#xff1a;对比不同卷积层热图可视化的结果 一、不同卷积层的特征特性 卷积层类型特征类型特征抽象程度对输入的依赖程度低层卷积层&#xff08;如第 1 - 3 层&#xff09;边缘、纹理、颜色、简单形状等基础特征低高&#xff0c;直接与输入像素关联中层卷积层&#xff08…...

C++ const 修饰符深入浅出详解

C const 修饰符深入浅出详解 &#x1f4c5; 更新时间&#xff1a;2025年6月6日 &#x1f3f7;️ 标签&#xff1a;C | const关键字 | 常量 | 多文件编程 | 现代C 文章目录 前言&#x1f31f; 一、const 是什么&#xff1f;为什么要用&#xff1f;示例✅ const 的四大好处 &…...

GIC700组件

GIC700包含了几个重要的组件,它们使用一个内部的GIC互联,用于在不同的组件之间使用AXI5-Stream接口进行路由。 1. Distributor(GICD) gicd是GIC700中所有组件之间的主要通信节点。它作为SPI的管理者以及维护LPI的cache,并且与其它chip上的GIC700组件进行通信。当支持GIC…...

Vue.js教学第十八章:Vue 与后端交互(二):Axios 拦截器与高级应用

Vue 与后端交互(二):Axios 拦截器与高级应用 在上一篇文章中,我们学习了 Axios 的基本用法,包括如何发送不同类型的 HTTP 请求以及基本的配置选项。本文将深入剖析 Axios 的拦截器功能,探讨请求拦截器和响应拦截器的作用、配置方法和应用场景,通过实例展示如何利用拦截…...

20250603在荣品的PRO-RK3566开发板的Android13下的使用命令行来查看RK3566的温度【显示优化版本】

20250603在荣品的PRO-RK3566开发板的Android13下的使用命令行来查看RK3566的温度【显示优化版本】 2025/6/3 11:58 RK3566的cpu运行效率 top busybox top rk3566_t:/ # rk3566_t:/ # rk3566_t:/ # cd /sys/class/thermal/ rk3566_t:/sys/class/thermal # ls -l rk3566_t:/sys/c…...

矩阵QR分解

1 orthonormal 向量与 Orthogonal 矩阵 orthonormal 向量定义为 &#xff0c;任意向量 相互垂直&#xff0c;且模长为1&#xff1b; 如果将 orthonormal 向量按列组织成矩阵&#xff0c;矩阵为 Orthogonal 矩阵&#xff0c;满足如下性质&#xff1a; &#xff1b; 当为方阵时&…...

【Block总结】DBlock,结合膨胀空间注意模块(Di-SpAM)和频域模块Gated-FFN|即插即用|CVPR2025

论文信息 标题: DarkIR: Robust Low-Light Image Restoration 作者: Daniel Feijoo, Juan C. Benito, Alvaro Garcia, Marcos Conde 论文链接&#xff1a;https://arxiv.org/pdf/2412.13443 GitHub链接&#xff1a;https://github.com/cidautai/DarkIR 创新点 DarkIR提出了…...