- 1、本文档共102页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3章结构化程序设计分析
解法程序如下: #include math.h main() { int m,n,i=0; for(m=100;m=200;m+=2) { for(n=2;n=sqrt(m);n++) if(m%n==0) break; 返回到本章目录 if(nsqrt(m)) { printf(%5d,m); i++; if(i%10==0) printf(\n); } } } 程序运行结果如下: 返回到本章目录 【练习3-7】 输出100~200之间不能被3整除的数。 解:设两个整型变量n和k,n为循环变量,k为格式控制变量。令n的初值为100,n小于等于200的时候,判断n是否能被3整除,能整除,则提前结束本次循环。如果不能整除,则输出该值,并将k自加1。当k整除10时,输出一个换行符。 返回到本章目录 解法程序如下: main() { int n,k=0; for(n=100;n=200;n++) { if(n%3==0) continue; printf(%5d,n); k++; printf(%5d,n); k++; if(k%10==0) printf(\n); } } 返回到本章目录 程序运行结果如下: 返回到本章目录 【练习3-8】百钱百鸡问题:假设1只公鸡卖3文钱,1只母鸡卖1文钱,3只小鸡卖1文钱,如果用100文钱买100只鸡,问公鸡、母鸡和小鸡各占多少只? 解:因为一共有100只鸡,所以假设公鸡、母鸡和小鸡的数量为i、j和k,则有等式i+j+k==100成立。又因为一共是100文钱买100只鸡,所以每种鸡的数量乘以其花的钱数之和为100文钱,即有3*i+j+k/3==100成立。又因为C语言中的“/”两侧都是整数时,运算为整除,结果不准确,而3只小鸡卖1文钱,所以小鸡的数量k应该是3的倍数,所以有k%3==0成立。这三个等式同时成立时的i、j和k值即为符合条件的三种鸡的数量。 返回到本章目录 源程序如下: main() { int i,j,k; clrscr(); /*清屏*/ for(i=1;i=33;i++) for(j=1;j=100;j++) for(k=1;k=100;k++) if(i+j+k==100 3*i+j+k/3==100 k%3==0) printf(\ncock:%2d, hen:%2d, chicken:%2d,i,j,k); } 返回到本章目录 程序运行结果如下: 返回到本章目录 本 讲 小 结 break语句和continue语句主要用于循环的流程控制,二者在用法上有显著差别。 break语句用于结束其所在的switch分支结构或循环结构。continue语句用于结束本次循环。 返回到本章目录 本章小结 本章主要介绍了选择结构和循环结构程序设计的语法结构、使用方法及注意事项,以及与之相关的流程控制语句。通过本章学习,应熟练掌握选择结构中if语句、switch语句的意义和使用方法,熟练掌握for循环、while循环和do-while循环的基本结构和应用,掌握break和continue语句的使用方法及流程转向语句goto语句的适用范围及用法。 返回到本章目录 2)for语句执行过程 (1)执行“赋初值语句”为循环体变量赋初值(注意,该语句在整个循环中只在开始时执行一次)。 (2)判断“条件”是否成立:若其值为非零,转步骤③;若其值为零,转步骤⑤。 (3)执行一次for循环体。 (4)执行“自增(减)语句”;转向步骤②。 (5)结束循环,执行for循环之后的语句。 返回到本章目录 3)for语句的使用说明 (1)for语句中的表达式可以部分或全部省略,但两个“;”不可省略。 例如: for( ; ; ) printf(*); 三个表达式均省略,但因缺少条件判断,循环将会无限制地执行,而形成无限循环(通常称为死循环)。 (2)for后括号中的表达式可以是任意有效的C语言表达式。 返回到本章目录 例如: for(sum=0,i=1;i=100;sum=sum+i,i++) { … } 其中表达式1和表达式3都是一个逗号表达式。 注意:C语言中的for语句书写灵活,功能较强。在for后的圆括号中,
文档评论(0)