这两天正在做C语言的练习题,突然看到了这个问题,本来已经做完了想上网搜一下竟然发现没有几个很好答案,那就我来写一个吧。(主要是比我猛的人也不屑于写这个了,狗头)、

思路解析:

  1. 首先要区分的一个概念就是钱数和张数,这个问题我只能说我们心里都明白可是不好用计算机来表达。既然这样那就多设几个变量便于看清楚。
  2. 理清思路100元换成1元,5元,10元的零钱,最容易换的就是10元。因为10是1,5,10的最小公倍数。这么做总会为后边较小的数留出空间来计算其他值。
  3. 用100去除(我分不清除和除以总之就是100/10)这样就能得到最多换10张10元,0张1元和5元。
  4. 所以最多10张,如果9张10元呢,这时候定义变量1<=i<=10 循环就可以了
  5. 设开始第1次循环后换出来了1个10元,剩余90元
  6. 这90元再去用于除5(90/5)最多会有18张5元。所以最多18张,如果是17张呢,再定义变量1<=j<=18
  7. 设开始嵌套循环的第1次循环换出来了1个五元
  8. 那么剩下的就不用说了嘛,五元十元的都换完了,剩下的一元就不需要这样分析了,因为一元的价值量等于其数量。即剩下的全是一元

上代码

void exchange()
{const int a = 100;int m_10 = 0, m_5 = 0, m_1 = 0;  //金额int n_10 = 0, n_5 = 0, n_1 = 0; //个数int sum = 0;printf("可交换数量如下(单位:张)\n");printf("\t1元\t5元\t10元\n");for (n_10 = 1;n_10 <= 10; n_10++){m_10 = a - 10 * n_10;for (n_5 = 1; n_5 <= m_10 /5; n_5++){m_5 = m_10 - 5 * n_5;{m_1 = m_5 * 1;n_1 = m_1;}if(n_1 != 0){sum++;printf("\t%d\t%d\t%d\n", n_1, n_5, n_10);}}}printf("共%d种\n", sum);
}

说明一下:

  • 复合语句m_1那两行纯属是为了增加可读性,完全可以直接赋值而且其中的金额变量也完全可以去掉直接替换成相应的赋值语句放在变量名处即可。
  • if条件是为了保证每个面额的纸币都大于0,没有这个要求可以不加。另外可能有其他要求,按照要求调整语句即可。
  • 另外,一开始容易犯的错误就是第二次循环的条件没有考虑到已经换出了10元的面额通常会直接写成1<=j<=20。在我第一次跑程序的时候 也是这么搞得。。。后来1元出现了负数就回头想了一下。
  • 晚安!

C语言编程题将100元钱兑换成1元,5元和10元的零钱,请用穷举法编程计算共有几种兑换方法,每种方法各兑换多少张纸币。相关推荐

  1. C语言练习题:三色球分组,编程计算三色球问题。若一个口袋中放有12个球,其中有3个红色的,3个白色的,6个黑色的,从中任取8个球,问共有多少种不同的颜色搭配?请用穷举法编程求解。

    编程计算三色球问题.若一个口袋中放有12个球,其中有3个红色的,3个白色的,6个黑色的,从中任取8个球,问共有多少种不同的颜色搭配?请用穷举法编程求解. **输入格式:无 **输出格式:"i ...

  2. C 语言编程 6.17 用100元人民币兑换10元,5元和1元的纸币(每一种都要有)共五十张。请用穷举法编程。共有多少种情况

    方法一:穷举法 对于穷举法的思考,穷举法所包括的范围范围一定要  大于  可能出现情况个数的范围. 计算机无所谓你多出来那几次计算. 所以在穷举法里不用小心翼翼的拿捏循环次数. 只要 i f 条件满足 ...

  3. 6.17.用100元人民币兑换10元,5元和一元的纸币共50张,请用穷举法编程计算共有几种兑换方法,每种方法各兑换多少张纸币。

    #include<stdio.h> main() { int x,y,z; for(x=1;x<=9;x++) { for(y=1;y<=17;y++) { 10*x+5*y+ ...

  4. 将一张100元的钞票换成1元、5元和10元的钞票,每种钞票至少一张,编写程序输出所有的换法,循环次数需要尽可能地少。

    2.将一张100元的钞票换成1元.5元和10元的钞票,每种钞票至少一张,编写程序输出所有的换法,循环次数需要尽可能地少. public class Two_2money { public static ...

  5. 二级c语言基础题库100题,二级C语言上题库100题.doc

    二级C语言上题库100题 二级C语言上机试题汇编 第01套: 给定程序中,函数fun的功能是:将形参n所指变量中,各位上为偶数的数去 除,剩余的数按原来从高位到低位的顺序组成一个新的数,并通过形参指针 ...

  6. 全国二级c语言上机题库答案,二级C语言上机题库100题加答案

    <二级C语言上机题库100题加答案>由会员分享,可在线阅读,更多相关<二级C语言上机题库100题加答案(67页珍藏版)>请在人人文库网上搜索. 1.1 :将大于整数m且接近m的 ...

  7. C语言程序设计之编程求鸡和兔的只数,用穷举法解决

    CSDN论坛上网友的问题:有一群鸡和一群兔,两种动物只数相同.两种动物的脚的总数都是三位数,且这两个三位数的六个数字分别是0,1,2,3,4,5.编程求鸡和兔的只数是多少?它们的脚数各是多少? C语言 ...

  8. C语言 穷举法 百元买百鸡问题。

    穷举法,百元买百鸡问题 中国古代数学家张丘建在他的<算经>中提出了一个著名的"百元买百鸡"的问题 鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百元买百鸡,问翁,母, ...

  9. 求100以内素数的方法(筛选法,穷举法,穷举法优化)

    一.基本思想 //质数(素数)是指在大于1的自然数中除了1和它本身以外不再有其他因数的自然数. (1)判断一个数n是不是素数,可以用2到(int)sqrt(n)之间的所有整数去除n,看能否整除,如果都 ...

最新文章

  1. CRM 客户端程序开发:获取表单界面上各种字段的值及其他属性
  2. Lync 小技巧-46-intranet-共享桌面-internet-网络问题
  3. Asp.NET的DESAES加密算法(转载)
  4. 7-1 查找整数 (10 分)
  5. C++ STL 容器的合并、求差集、交集等操作实例 含详细注释版
  6. 使用apache benchmark(ab) 测试报错: apr_socket_recv: Connection timed out (110)
  7. CSS美化超链接样式
  8. 视频监控流媒体服务器工作原理,流媒体服务器传输基本原理
  9. Java—求最大公约数和最小公倍数
  10. setlocale()函数的作用
  11. 中国一线二线三线城市名单
  12. 携程的供应链和流量逻辑|一点财经
  13. Oracle:Locked by transaction: console [表名]
  14. https://www.cloudmidi.net/ableton-live-11-suite-v11-0-macos.html
  15. Android9.0 网络安全配置文件
  16. STL 源码分析: RB_tree 红黑树(三) 插入和查找
  17. 【Rochester】MongoDB的基本语法和使用
  18. 关于.9图失效以及.9图不可以错过的细节点
  19. 【centos】geoserver支持ecw
  20. linux如何使用帮助文档快速学习

热门文章

  1. 毫米波蜂窝系统的信道估计及混合预编码
  2. PowerPoint是一种什么软件
  3. JAVA计算机毕业设计中文网络小说平台系统Mybatis+源码+数据库+lw文档+系统+调试部署
  4. matlab的sparse,matlab的
  5. Android 媒体库图片,音频,视频,文件的查询
  6. 串口服务器Moxa NPort 5650小结
  7. 在win10中搭建zircon开发调试环境
  8. MySQL数据库好处、概念、特点
  9. 人脸识别/车牌识别系统视频智能分析平台EasyCVR如何配置开启HTTPS协议?
  10. JS通过window location href下载文件