欢迎来到天天文库
浏览记录
ID:51617247
大小:664.50 KB
页数:90页
时间:2020-03-26
《C语言程序设计教程课件1C语言第5章循环结构程序设计.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第五章循环结构程序设计§5.1概述前面已介绍了顺序结构,选择结构,本章介绍循环结构。如:sum=1+2+3+…+100;实际问题:一组重复执行的语句。则用循环结构解决。C语言用四种形式循环2.do-while语句3.For语句4.break、continue和goto语句1.While语句§5.2while语句while语句在C语言中用得比较多,它是通过判断循环控制条件是否满足来决定是否继续循环,又称“当型”循环。形式:while(表达式)循环体语句2.执行过程:先判断表达式的值。若0.则执行其后面的语句,否则while执行完毕。专门的当型循环语句–
2、–while语句3.流程图:表达式语句0=0下一语句将上述例子用while语句写出while(i<=100){sum+=i;i++;}语句中应有使表达式=0的语句。否则会出现无限循环–––"死"循环。注:while后面的语句一般为复合语句,即:加{}我们来看下面的例子例5.1写一个程序,输入一个班学生的成绩,求全班的平均成绩。分析:输入成绩、计算平均成绩都是一个重复性过程,因此可以用循环语句来实现。在这里,我们并不知有多少个学生,也就是说不知循环到底有多少次,但考虑到成绩没有负数,这样就可以把循环条件定为:每当输入的分数大于等于0时就继续输入成绩;
3、输入的分数小于0时就停止输入。解题步骤如下:(1)输入一个分数(2)当“分数>=0”时,做下列工作:①累计总分;②人数加一;③输入下一分数;(3)重复第(2)步,直到“分数<0”。程序:#includemain(){floatscore,average=0;/*average存放平均成绩,初值为0*/intn=0;/*n用来存放学生数,初值为0*/scanf(″%f″,&score);/*输入第一个学生的分数*/while(score>=0){average+=score;/*average先用来放总分*/n++;/*学生数增一*/sc
4、anf(″%f″,&score);/*输入下一个学生的分数*/}if(n!=0)average=average/n;/*求平均成绩,average*/printf(″%6.2f″,average);/*输出平均成绩average,保留两位小数*/}在使用while语句的时候,我们要注意以下两个问题:(1)循环体如果包含一个以上的语句,应该用花括号括起来,以复合语句的形式出现。如果不加花括号,则while语句的范围只到while后面的第一个分号处。比如上例中,while语句中如无花括号,则while语句范围只到“average+=score;”。(2)在循
5、环体中应有使循环趋向于结束的语句。比如上例中,循环结束的条件是“score>=0”,那么当我们把这个班的成绩全部输入完后,一定要输入一个负数,才能使程序往下执行。(3)循环体语句有可能一次也不执行。比如说上例中,当第一次输入的分数就为负数时,则循环体一次也不执行。§5.3do…while语句do-while语句的特点是:先执行循环体中的语句,再通过判断表达式的值来决定是否继续循环,循环条件的测试是在循环的尾部进行的。它是一种专门的“直到型”循环语句。它的一般形式为:do循环体语句while(表达式);语句表达式0=03.流程:对于例5.1用do-whi
6、le语句编写程序如下:#includemain(){floatscore,average=0;intn=0;do{/*不进行判断,先进入循环*/scanf(″%f″,&score);/*输入学生的分数*/if(score>=0){average+=score;n++;}}while(score>=0);/*表达式为非0,则继续*/if(n!=0)average/=n;/*求平均成绩,average*/printf(″%6.2f″,average);/*输出平均成绩average,保留 两位小数*/}例5.2编程序
7、求1+3+5+7+9+…这样的数之和。如果累加数大于750时,则程序终止并输出结果。main(){inti=1,sum=0;while(sum<=750){sum=sum+i;i=i+2;}printf("%d",sum);}例5.3用do-while语句求1至1000之间满足“用3除余2,用5除余3,用7除余2”的数,且一行只打印五个数。分析:判断一个数被另一个数除,用取模运算%。三个条件是“与”的关系。一行打印五个数,可以通过计数到5再回车换行。程序代码如下:#includemain(){inti=1,j=0;do{if(i%3
8、==2&&i%5==3&&i%7==2){printf(″%4d″,i);j=j
此文档下载收益归作者所有