说明

这是苏小红C语言课本(第三版)P129例题,这里仅仅测试 例题后面的思考题(证明:不对)。题目较为简单,十分易懂,编程界大佬请忽略哈!

题目

韩信点兵问题。问题描述:韩信有一队兵,他想知道有多少人,便让士兵排队报数,按从1至5报数,最末一个士兵报的数为1,按从1至6报数,最末一个士兵报的数为5,按从1至7报数,最后一个士兵报的数为4,最后再按从1至11报数,最后一个士兵报的数为10,请编程计算韩信至少有多少兵?

解法

第一种解法,使用带有break的语句:

让循环在找到第一个满足关系式的解后立即退回循环。
#include <stdio.h>
int main(){int x;for(x=1; ;x++){if(x%5==1 && x%6==5 && x%7==4 && x%11==10){printf("x=%d\n",x);break; // 注意这里哦!}}
}

所得结果:

第二种解法,调用函数exit()来直接结束程序的运行。

程序如下:(运行结果同样 如上所示)

#include <stdio.h>
#include <stdlib.h> //exit()
int main(){int x;for(x=1; ;x++){if(x%5==1 && x%6==5 && x%7==4 && x%11==10){printf("x=%d\n",x);exit(0); //即这里 }}
}

第三种解法,定义一个标志变量find。

程序如下:(结果正确,对的√)

#include <stdio.h>
int main(){int x;int find=0;//即这里 令找到标志变量为假 for(x=1; !find ;x++){  //find 为假时继续循环 if(x%5==1 && x%6==5 && x%7==4 && x%11==10){printf("x=%d\n",x);find=1;   //令找到标志变量为真 }}
}

而如果将printf打印语句放到for循环体外面,程序输出结果却变为2112 ××(错的),结果不对。可以思考一下为啥嘞???

第四种解法,使用do-while语句。

程序如下:亦是正确的解法!√

#include <stdio.h>
int main(){int x=0; //由于下面循环中先对x加1,故这里x初始化为0 int find=0;// 令标志变量初值为假 do{x++;find=(x%5==1 && x%6==5 && x%7==4 && x%11==10);} while(!find); //千万注意这里要加  分号;;;;; printf("x=%d\n",x);
}

另外,也可以这样写: 也是正确的√

也可以说是上面循环中的小变形,本质上一样的。

#include <stdio.h>
int main(){int x=0; //由于下面循环中先对x加1,故这里x初始化为0 do{x++;} while(!(x%5==1 && x%6==5 && x%7==4 && x%11==10)); //千万注意这里 也要加  分号;;;;; printf("x=%d\n",x);
}

【C语言 穷举法编程实例——韩信点兵问题(苏小红版C语言(第3版))】相关推荐

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

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

  2. c语言变量相等问题穷举法,C语言穷举法经典例题.ppt

    <C语言穷举法经典例题.ppt>由会员分享,可在线阅读,更多相关<C语言穷举法经典例题.ppt(18页珍藏版)>请在人人文库网上搜索. 1.枚举法(穷举法),"笨人之 ...

  3. c语言穷举法举例,C语言穷举法经典例题.ppt

    <C语言穷举法经典例题.ppt>由会员分享,可在线阅读,更多相关<C语言穷举法经典例题.ppt(18页珍藏版)>请在人人文库网上搜索. 1.枚举法(穷举法),"笨人之 ...

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

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

  5. 穷举法c语言吃饭,C语言穷举法经典例题

    枚举法(穷举法),"笨人之法":把所有可能的情况一一测试,筛选出符合条件的各种结果进行输出.,分析:这是个不定方程--三元一次方程组问题(三个变量,两个方程)x+y+z=1005x ...

  6. n阶魔方的构成方法C语言,穷举法打印n阶魔方矩阵

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 //   穷举法打印n阶魔方矩阵 n <= 10 #include #include int A[ 11 ][ 11 ]; bool Flag[ 1 ...

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

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

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

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

  9. c语言穷举法等式求缺位数,四年级下册数学奥数试题-培优拓展训练--第13讲:数字谜题(教师版)...

    第十三讲数字谜题 ------------------------------------------------------------------------------------------- ...

  10. 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+ ...

最新文章

  1. Spark PruneDependency 依赖关系 RangePartitioner
  2. php imagevue,Imagevue 2.1.4 正式注册版(PHP Flash相册源代码下载)
  3. 树莓派400键盘计算机发布!全新的电路板布局,更快,更酷!
  4. np.random.seed的有效期及固定的种子会有固定的顺序
  5. 处理数字_4_计算某列的总和
  6. mysql慢查询检查流程_简单谈谈MySQL优化利器-慢查询
  7. airodump-ng wlan0mon扫描不到网络_MySQL ProxySql 由于漏洞扫描导致的 PROXYSQL CPU 超高...
  8. 嵌入式linux opengl6,利用winSSHD实现Windows和Linux间的文件互传
  9. 07-02 测试报告-allure
  10. MATLAB绘图—三维曲线绘图-(plot3)
  11. C 语言之父,UNIX 系统之父 Dennis Ritchie (丹尼斯 里奇)于 10 月 9 日去世,享年 70 岁
  12. 【windows】找不到MSVCR100.dll、VCRUNTIME140.dll
  13. 使用Mailgun Store():应用程序传入电子邮件的临时邮箱
  14. knn matting matlab,一键抠图,毛发毕现:这个GitHub项目助你快速PS
  15. 2022年终总结与展望
  16. Android的各版本间的区别总结
  17. 云客Drupal源码分析之实体视图显示及格式化器
  18. codeforces 1100D-Dasha and Chess
  19. 过程参数检测及仪表课程设计-第二类标准节流装置设计命题
  20. 小牛电动车的官方论坛被人用程序恶意刷屏。。。。

热门文章

  1. 使用AVSpeechSynthesizer添加文本转语音的功能
  2. SpringBoot+smm+Vue前后端分离项目用户模块基本功能设计
  3. java fact函数_Fact 定义一个类Fact表示无符号有理数(分数) 联合开发网 - pudn.com...
  4. 项目研发阶段性总结模板
  5. 工作流——流程设计器
  6. 萌新入坑第一课——如何写技术博客
  7. win10笔记本,蓝牙耳机连接上电脑以后,耳机没有声音怎么办?
  8. matplotlib plot pie
  9. 如何将谷歌浏览器设置为默认浏览器
  10. 技术小卡系列之Eclipse 窗口说明