- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言程序设计 第5章节
程序输出结果为: 使用循环嵌套要注意以下几点: (1)外层循环应完全包含内层循环,不能交叉,否则会引起歧异。 (2)循环嵌套的循环控制变量一般不应同名,以免造成混乱,不便于理解和控制。 (3)嵌套循环时应使用缩进,保持良好的书写格式,提高程序可读性。 【例5-11】编写程序,输出如下图形: 【编程思路】 (1)图形中共有6行,定义变量i表示行数,使其从1递增到6。 (2)每行中要有若干个空格,若干个“*”及换行。 (3)仔细数数会发现,每行的空格数分别为6、5、4、3、2、1,如果与行号联系起来,每行要输出的空格数为7-i个。 (4)每行的“*”个数分别为1、3、4、7、9、11,正好是2*i-1个。 (5)用外层循环实现行的转换,内层循环输出各行内容。 【程序代码】 #include stdio.h main( ) { int i,j; for(i=1;i=6;i++) /* 外循环控制要输出的行数 */ { for(j=1;j=7-i;j++) /* 内循环1控制输出空格符 */ printf( ); for(j=1;j=2*i-1;j++) /* 内循环2控制输出“*”*/ printf(*); printf(\n); /*换行 */ } } 5.4 循环结构应用实例 【例5-12】输入10个整数,求其中的最大数和最小数。 【编程思路】 (1)定义变量max,min分别用来存储最大值和最小值,用变量x存储输入的每个数,由于只用变量x表示输入的10个数,所以要使用循环结构。 (2)将输入的第一个数作为max和min的初值,以后每输入一个数都将与max与min分别比较,如果大于max,则将它存入max,作为新的最大值,如果它小于min,则用它替换原来的min。如此重复下去,max始终存放的是当前已输入的最大值,min始终存放的是当前输入的最小值。 (3)定义变量i控制循环次数。 【程序代码】 #include stdio.h main() { int i; int x,max,min; printf(please input the first number :); scanf(%d,x); max=x; min=x; for(i=2;i=10;i++) { printf(Please input the next number :); scanf(%d,x); if (xmax) max=x; else if (xmin) min=x; } printf(max=%d, min=%d\n,max,min); } 程序运行过程及输出结果为: 【例5-13】输出100~200之间的所有素数。 【编程思路】 例5-8已经介绍了如何判断一个数m是不是素数,在此基础上,本题只需外套一个for循环,对m的所有取值进行穷举测试即可,也就是用外层循环使m从101递增到200,而内层循环只需要判断m是否是素数,如果是则输出m的值。 【程序代码】 #include stdio.h #include math.h main( ) { int m,i,flag,n=0; for(m=101;m=200;m=m+2) { flag=0; /*标志变量取初值*/ for (i=2;i=(int)sqrt(m);i++) if(m%i==0) {flag=1; break;} /*m不是素数时,标志变量取值为1*/ if (flag==0) { printf(%d ,m); /*输出素数m*/ n++; /*统计输出素数的个数*/ if (n%7==0) printf(\n,m); /*每行输出7个素数*/ } } printf (\n); } 【例5-14】求Fibonacci数列前40个数。这个数列有如下特点:第1,2两个数为1,1。从第3个数开始,该数是其前面两个数之和。即: F(1)=1 (n=1) F(2)=1 (n=2) F(n)=F(n-1)+F(n-2) (n≥3) 【编程思路】 (1)本题属于典型的递推问题。递推问题就是需要不断地用旧值推算出新值,在程序中表现为不断地用新值取代变量旧值的过程。 (2)定义循环变量n,用来表示数列的项数,那么n要从1递增到40,不过数列的前两项已经给出,所以n的初值为3。 (
您可能关注的文档
最近下载
- 三一SY235C9I2KS维护保养手册.pdf VIP
- 纪念中国人民抗日战争暨世界反法西斯战争胜利80周年PPT课件.pptx VIP
- 陶瓷原料及配方基础.ppt VIP
- 茶小绿叶蝉的防治课件.pptx VIP
- 电梯制造与安装安全规范 GB7588-2003.docx VIP
- 2023民航特种车辆操作工民航特种车辆操作工试卷(练习题库).docx VIP
- IEC 60840-2004 额定电压30kV(Um=36kV)以上至150kV(Um=170kV)挤包绝缘电力电缆及其附件试验方法和要求(中文).pdf VIP
- 22G101 三维彩色立体图集.docx VIP
- 混凝土混凝土.ppt VIP
- 沈萍微生物课件第3章b.ppt VIP
文档评论(0)