欢迎来到天天文库
浏览记录
ID:33822417
大小:245.00 KB
页数:16页
时间:2019-03-01
《第6章循环结构程序设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、《C程序设计》课程讲义第16页共16页第6章循环结构程序设计第6章循环结构程序设计【计划课时】授课6课时+上机4课时6.1概述循环是在循环条件为真时计算机反复执行的一组指令(循环体)。循环控制通常有两种方式:·计数控制——事先能够准确知道循环次数时用之用专门的循环变量来计算循环的次数,循环变量的值在每次执行完循环体各语句后递增,达到预定循环次数时则终止循环,继续执行循环结构后的语句。·标记控制——事先不知道准确的循环次数时用之由专门的标记变量控制循环是否继续进行。当标记变量的值达到指定的标记值时,循环终止,继续执行循环结
2、构后的语句。在C语言中可用以下语句构成循环:if…gotowhiledo…whilefor6.2if…goto语句循环结构P106goto是一种无条件转向语句。一般形式:goto标号;if…goto可构成当型/直到型循环结构(尽量少用,以提高程序可读性/结构性)。【例一】main(){intn=0,sum=0;loop:sum+=n;++n;if(sum<=10000)gotoloop;printf(“n=%d”,n);}《C程序设计》课程讲义第16页共16页第6章循环结构程序设计【例二】main(){intn=0,
3、sum=0;loop:if(sum>=10000)gotoend;sum+=n;++n;gotoloop;end:printf(“n=%d”,n);}6.3while语句循环结构P107一般形式while(条件表达式)循环体;用于构成当型循环:先判断后执行/条件为真继续循环,直到条件为假时结束循环。【注意】条件表达式或循环体内应有改变条件使循环结束的语句,否则可能陷入“死循环”。【例一】main(){intn=0;while(n<=2){n++;printf(“%d”,n);}}结果:123【讨论】若去while语句
4、中的{},结果:3;若将n++移到printf语句中,结果:012【例二】intn=0;while(n++<=2);printf(“%d”,n);结果:4【讨论】n=3时,while条件为假,结束循环,但比较后n自加了一,所以n=4。【例三】main(){inti=0;while(1){printf(“*”);i++;《C程序设计》课程讲义第16页共16页第6章循环结构程序设计if(i<3)break;}printf(“”);}}结果:*【讨论】若将if(i<3)改为if(i>3),结果:****【例四】编程实例研究
5、:求解全班平均成绩问题描述:某个班中有n个学生,已知他们参加某次考试的成绩(0至100之间的整数),编程求全班学生在这次考试中的平均成绩。思路:使用用自顶向下、逐步求精的技术,先用伪码表示问题的顶层:Determinetheclassaverageforthequiz(求解全班平均成绩)顶层只有一句(描述程序的整个功能,但未给出足够的细节)。第一步求精——initializevariables(初始化变量)input,sum,countthequizgrades(输入各人成绩,求其总和,计数键入次数)calculatea
6、ndprinttheclassaverage(计算并输出全班的平均成绩)这里只用到顺序结构,即所列出的步骤是按顺序一个接一个执行的。说明:如果用total表示总成绩,用counter表示键入成绩的次数,则使用前这两个变量应先初始化(设置为0)。第二步求精:①伪码语句initializevariables可作如下求精:initializetotaltozeroinitializecountertozero讨论:为什么只对这两个变量进行初始化?②伪码语句input,sum,countthequizgrades可作如下求精:i
7、nputthefirstgradewhiletheuserhasnotasyetenteredthesentineladdthisgradeintotherunningtotaladdonetothegradecounterinputthenextgrade(possiblythesentinel)因为本例不知道要输入多少个成绩,所以程序必须能够处理任意个数的成绩。程序如何判断何时终止输入成绩呢?方法之一是使用一个专门的值来指示数据输入的结束。这个值称为“标志值”(sentinetvalue)。由于考试成绩是非负的整数值
8、,本例中将取-1为标记值。③伪码语句calculateandprinttheclassaverage可作如下求精:ifthecounterisnotequaltozerosettheaveragetothetotaldividedbythecounter《C程序设计》课程讲义第16页共16页第6章循环结构程序设计pr
此文档下载收益归作者所有