第6章循环结构程序设计.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
对于for循环语句应该注意如下两点: (1)这3个表达式之间用分号隔开,表达式1可以省略不写,但是分号不能省略。此时应在在循环外给循环赋初值,执行循环时,将跳过第一步。 (2)如果表达式2省略(分号不能省),则不判断循环条件,相当循环条件永真,形成无限循环。表达式3也可省略(分号不能省),此时循环体中应有改变循环条件的语句。 例如: int i,j,num=0; for(i=1,j=1;i10;i++,j++;) { num=num+i+j; } 6.3.1 简单for语句 例6.5 检测给定的某个整数是否为质数。 算法 质数又称为素数,指除1和它本身外不能被其他任何数整除的整数。如2,3,5,7,11等。因而测试某个数n是否为质数,只需要测试n能否被2,3,4,…,n-1整除,如果不可以整除,则是质数,否则不是质数。 程序 #includestdio.h main() { int i,num,flag; flag=0; printf(“Input a number:”); scanf(“%d”,num); if(num2) printf(“The number %d is not a prime number.\n”,num); else { for(i=2;inum;i++) if(num%i==0) { flag=1; break; } printf(“The number %d is ”,num); if(flag==1) printf(“not a prime number.\n”); else printf(“a prime number.\n”); } } 输入 Input a number:24↙ 输出 The number 24 is not a prime number. 分析 一般情况下,n若不能被2,3,4,…,整除,则n是质数。由于≤n,因而程序中第12行的inum可以改为i=sqrt(num),可以减少循环的次数,提高程序执行的效率。由于sqrt()函数在math.h中定义,所以在程序执行前要增加预处理命令#includemath.h。 6.3.2 for语句的嵌套 在C语言中,经常需要把一个循环结构作为另一个循环结构的循环体,这种语句称为循环的嵌套。循环的嵌套包括二重循环和多重循环,一般情况下循环的嵌套都是由for语句来完成的。本小节将重点介绍for语句的二重循环。for语句的二重循环的一般格式如下: for(表达式1;表达式2;表达式3) { 循环体语句1; for(表达式4;表达式5;表达式6) { 循环体语句2; } 循环体语句3; } 其执行过程如下: (1)求解表达式1。 (2)求解表达式2,如果它为真(即非零),则执行循环体语句1,接着执行第(3)步,最后执行表达式3,依此类推;否则执行第(5)步。图6.3.2 for语句嵌套流程图 (3)求解表达式4,然后执行并判断表达式5,如果它为真(即非零),则先执行循环体2,然后执行表达式6,依此类推;否则退出第2层for循环体。 (4)先执行循环体语句3,然后执行第(2)步。 (5)结束循环,退出整个for循环体。其流程图如图6.3.2所示。 图6.3.2 for语句嵌套流程图 例6.6 先把一张面值为100元的钞票兑换成面值分别为5元、1元和5角的钞票共100张,要求每种面值的钞票至少一张,求所有的兑换方案。 算法 最简单一种算法是分别使用3个变量来表示3种面值钞票的数量,它们的取值范围都是1~100。使用三重for循环,当3个变量的总和为100,且对应的金额总计为100时,这3个变量对应的值就是一种兑换方案。 实际上,5元的钞票不可能超过12张,因为如果5元的钞票为12张时,则总金额为60元,剩下40元即使全换成5角,也只有80张,钞票总数小于100张;由于钞票总数是100,因而只要知道其中两种钞票的数量后,第3种钞票的数量就知道了,于是三重循环就可改写为二重循环。 程序 #includestdio.h main() { int i,j,k=1; clrscr(); for(i=1;i=12;i++) for(j=1;j=99-i;j++) if(5*i+j+0.5*(100-i-j)==100.0) { printf(“The way %d is\n”,k++); printf(“The total of 5yuan=%d,1yuan=%d,0.

文档评论(0)

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

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

1亿VIP精品文档

相关文档