循环控制zd.pptVIP

  1. 1、本文档共46页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
循环控制zd

循环控制 exit()函数 终止程序的执行 循环结构——循环嵌套 当一个循环体内又包含另一个完整的循环体时,称为循环嵌套。其中被嵌套的循环称为外层循环,在其它循环体中嵌套的循环为内层循环,或者内嵌循环。如果内嵌循环的循环体内又有一个完整的循环结构,则构成了多层嵌套。C语言提供的三种循环控制语句可以互相嵌套,也可以自己嵌套。 循环嵌套例 输出如下图形: * ** *** **** ***** 分析: 由于要输出5行,第i行由i个“*”组成(i=1,2,3,4,5),所以我们可以使用外层循环来控制输出的行数,而使用内层循环控制每行输出的星号个数。需要注意的是,内层循环的循环次数等于外层循环的循环变量的值。 #include stdio.h void main(){ int i,j; for (i=1;i=5;i++){ for (j=1;j=i;j++) printf(*); printf(\n); } } 循环嵌套例 绘制余弦曲线:在屏幕上用”*”显示0度到360度的余弦曲线。 问题分析与算法设计 对一般显示器来说,只能按行输出,即输出一行后,只能向下一行输出,不能再返回到上一行,()。因此,画图过程应该是给定y(从大到小)求x的值, 同时一行输出两个”*”。 cos是左右对称的,0-180和180-360是对称的。 设屏幕的一个字符宽度画一个”*”。定义行方向为x方向,列方向为y。必须离散化。定义图形总宽度为62(3.1415*2*10)列,高位1到-1共20行。计算出x为0-180的y的坐标值m,那么同一行180-360的坐标值就为62-m。 #include stdio.h #include math.h void main() { double y; int x, m; printf(\n); for(y = 1; y = -1; y-=0.1) { printf( ); m = acos(y)*10; for(x = 1; x m; x++) printf( ); printf(*); for(; x 62 - m; x++) printf( ); printf(*\n); } printf(\n); } 百钱买百鸡问题 “百钱买百鸡”是我国古代的著名数学题。问题是这样描述的:3文钱可以买1只公鸡,2文钱可以买一只母鸡,1文钱可以买3只小鸡。用100文钱买100只鸡,那么各有公鸡、母鸡、小鸡多少只? 百钱买百鸡问题 解法1: 假设i、j、k分别代表公鸡、母鸡和小鸡的数目,注意到一百文钱最多可以买33只公鸡、50只母鸡和300只小鸡,所以0=i=33,0=j=50,0=k=300。 #includestdio.h void main() { int i,j,k; for (i=0;i=33;i++) for (j=0;j=50;j++) for (k=0;k=300;k++) if (3*i+2*j+k/3==100 i+j+k==100 k%3==0) printf(公鸡%d只,母鸡%d只,小鸡%d只。\n,i,j,k); } 百钱买百鸡问题 解法2: 在第一种实现方法里面,i、j、k构成了三重循环,if语句总共需要被判断33×50×300=495000次。 上个程序完全可以变为二重循环,因为i、j、k都是整数,当i、j的值被确定后,k=100-i-j。 #includestdio.h void main() { int i,j,k; for (i=0;i=33;i++) for (j=0;j=50;j++) { k=100-i-j; if (3*i+2*j+k/3==100 k%3==0) printf(公鸡%d只,母鸡%d只,小鸡%d只。\n,i,j,k); } } 百钱买百鸡问题 解法3: 在第二种方法里,i、j构成二重循环,if语句总共被判断:33×50=1650次。更进一步分析,我们发现当i确定时,j的范围可以更进一步确定为:0=j=(100-3*i)/2。 #includestdio.h void main() { int i,j,k; f

文档评论(0)

panguoxiang + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档