网站大量收购闲置独家精品文档,联系QQ:2885784924

C语言 第五章 循环结构.ppt

  1. 1、本文档共54页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言 第五章 循环结构

【例5.13】 把100到150之间的不能被4整除的数输出,并要求一行输出8个数。 #include ”stdio.h” main() { int n, i=0; for (n=100; n=150; n++) { if (n%4==0) continue; printf(”%4d”, n); i++; if (i%8==0) printf (”\n”); } } 五、常用算法 1、枚举法(穷举法) “笨人之法”: 把所有可能的情况一一测试,筛选出符合条件的各种结果进行输出。 【例一】百元买百鸡:用一百元钱买一百只鸡。已知公鸡5元/只,母鸡3元/只,小鸡1元/3只。 分析: 这是个不定方程——三元一次方程组问题(三个变量,两个方程) x+y+z=100 5x+3y+z/3=100 设公鸡为x只,母鸡为y只,小鸡为z只。 百元买百鸡问题分析 main() { int x,y,z; for (x=0;x=100;x++) for (y=0;y=100;y++) for (z=0;z=100;z++) { if (x+y+z==100 5*x+3*y+z/3.0==100 ) printf(cocks=%d,hens=%d,chickens=%d\n,x,y,z); } } 结果:x=0,y=25,z=75 x=4,y=18,z=78 x=8,y=11,z=81 x=12,y=4,z=84 【讨论 此为“最笨”之法——要进行101×101×101= 1030301次(100多百次)运算。 百元买百鸡问题分析 main() { int x,y,z; for (x=0;x=100;x++) for (y=0;y=100;y++) { z=100-x-y; if (5*x+3*y+z/3.0==100 ) printf(“cocks=%d,hens=%d,chickens=%d\n,x,y,z); } } 【讨论】 令z=100-x-y 只进行101×101= 10201 次运算(前者的1%) 取x=19,y=33 只进行20×34= 680 次运算(第1种运算的6.7%) 【例二】雨水淋湿了算术书的一道题,8个数字只 能看清3个,第一个数字虽然看不清,但可看出不是1。编程求其余数字是什么? [ □×(□3+□)]2 = 8□□9 分析 设分别用A、B、C、D、E五个变量表示自左到右五个未知的数字。其中A的取值范围为2~9,其余取值范围为0~9。条件表达式即为给定算式。 main() { int A,B,C,D,E; for (A=2;A=9;A++) for (B=0;B=9;B++) for (C=0;C=9;C++) for (D=0;D=9;D++) for (E=0;E=9;E++) if (A*(B*10+3+C)*A*(B*10+3+C)==8009+D*100+E*10) printf(“%2d%2d%2d%2d%2d\n”,A,B,C,D,E); } 结果:3 2 8 6 4 【例二】雨水淋湿了算术书的一道题,8个数字只 能看清3个,第一个数字虽然看不清,但可看出不是1。编程求其余数字是什么? [ □×(□3+□)]2 = 8□□9 【例三】 求100~200之间不能被3整除也不能被7整除的数。 分析:求某区间内符合某一要求的数,可用一个变量“穷举”。所以可用一个独立变量x,取值范围100~200。 for (x=100;x=200;x++) if (x%3!=0x%7!=0) printf(“x=%d\n”,x); 如果是求指定条件的奇数呢? 如果是求指定条件的偶数呢? x=101;x=200;x=x+2 x=100;x=200;x=x+2 2、归纳法(递推法、迭代法) “智人之法” : 通过分析归纳,找出从变量旧值出发求新值的规律。 五、常用算法 【例一】 编程求∑i =1+2+3+4…+99+100 (i=0~100) 分析 i=0 S0=

文档评论(0)

wdhao + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档