循环结构程序设计素材.pptx
《循环结构程序设计素材.pptx》由会员分享,可在线阅读,更多相关《循环结构程序设计素材.pptx(44页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、本章内容4.1 for语句4.2 while语句4.3 do-while语句4.4 break语句和continue语句4.5 循环语句的嵌套4.6 C语言程序的调试方法4.7 案例分析与实现第1页/共44页【学习目标】掌握三种循环控制语句:for语句、while语句和do-while语句掌握break语句和continue语句能够熟练应用for语句、while语句和do-while语句进行程序设计第2页/共44页4.1 for4.1 for语句语句 一般格式为:for(循环变量赋初值;条件表达式;循环变量增值)循环体【格式说明】(1)for语句的三个表达式之间必须以分号分隔,如果省略条件表达
2、式,则默认条件为真。(2)循环体是一条简单语句或复合语句。第3页/共44页(3)循环变量赋初值部分和循环变量增值部分可以放在for语句的括号之外,但分号不能省略,上述for语句等价于:循环变量赋初值for(;条件表达式;)循环体循环变量增值第4页/共44页【例4-14-1】编写程序求1+2+3+1001+2+3+100的和。#include void main()int sum=0,i;for(i=1;i=100;i+)sum=sum+i;printf(sum=%dn,sum);问题:1)如果求从1到100之间的所有奇数之和,上面的程序应如何修改?2)for循环执行完后,i的值为多少?第5页/
3、共44页【例4-2】编程输出1200之间所有用3除余2、且用5除余3的数,并统计这样的数有多少个。编程思路:可以采用穷举法来编程实现。#include void main()int i,k=0;/k用来计数for(i=1;i=200;i+)if(i%3=2)&(i%5=3)printf(%4d,i);k+;printf(n数的个数为:%dn,k);第6页/共44页【例4-3】鸡兔同笼问题。已知笼中鸡和兔共100只,共有274只脚,求鸡和兔各有多少只?编程思路:可以采用穷举法来编程实现。#include void main()int a,b;/a和b分别表示鸡和兔的数量for(a=1;a100;
4、a+)b=100-a;if(a*2+b*4=274)printf(鸡有:%d只,兔有:%d只n,a,b);第7页/共44页#include#include void main()double sum=0,pi,c;/c为当前项int n;/n为循环控制变量for(n=1;n=100;n+)c=pow(-1,n+1)/(2*n-1);/计算当前项sum=sum+c;/求和pi=4*sum;printf(pi=%lfn,pi);第8页/共44页程序改进该程序100次调用数学函数pow(),会带来一定的开销,影响程序的执行速度,能否采用其他方式来控制每一项的符号位呢?方法如下:(1)定义一个表示符号
5、位的变量s,语句为:double s=1;。(2)由于符号位正负交替,因此,每执行一次就将符号位取反,这样可将语句c=pow(-1,n+1)/(2*n-1);改为:c=s/(2*n-1);s=-s;。第9页/共44页【例4-5】输出所有水仙花数。所谓水仙花数是指一个3位数,其各位数字的立方和等于该数本身。例:15313+53+33#include void main()int m,bai,shi,ge;/bai、shi、ge分别对应百、十和个位for(m=100;m=999;m+)bai=m/100;shi=(m%100)/10;ge=m%10;if(m=bai*bai*bai+shi*shi
6、*shi+ge*ge*ge)printf(%d,m);如何统计这样的数有多少个?如何统计这样的数有多少个?第10页/共44页【例4-6】有一数列2、3、5、8、,从第3项开始,每一项为其前两项之和,输出这个数列的前20项,且每行显示5个数。#include void main()int i,a1=2,a2=3,a3;printf(%6d%6d,a1,a2);for(i=3;i=20;i+)a3=a1+a2;printf(%6d,a3);a1=a2;a2=a3;if(i%5=0)printf(n);编程思路:这是一个典型的递推问题。第11页/共44页4.2 while语句while语句又叫“当”
7、语句,其一般格式为:while(条件表达式)循环体 第12页/共44页【例4-74-7】编写程序求1+2+3+1001+2+3+100的和。#include void main()int sum=0,i=1;while(i=100)sum=sum+i;i=i+1;printf(sum=%dn,sum);【程序说明】(1)一定要在while循环之前给变量sum和i赋初值,否则,变量的值为一个随机数,会导致程序的执行结果不正确。(2)由于循环体由两条语句构成,因此,必须用 将他们括起来。第13页/共44页【例4-84-8】小红今年1212岁,她父亲比她大3030岁,编程计算:多少年后她父亲的年龄是
8、她的年龄的2 2倍,此时她的年龄是多少?#include void main()int x=12,y=42,m;while(2*x!=y)x+;y+;m=x-12;printf(经过的年数:%d,小红的年龄:%d,小红父亲的年龄:%d n,m,x,y);第14页/共44页#include#include void main()double sum=0,pi,c=1,s=1;/c为当前项,s为符号位int n=1;while(fabs(c)=1e-6)sum=sum+c;s=-s;n+;c=s/(2*n-1);pi=4*sum;printf(pi=%lfn,pi);第15页/共44页用while
9、语句编写的程序一般也可以采用for语句来实现,那么什么情况下更适合采用for语句?什么情况下更适合采用while语句呢?答案是:for语句最适合编写循环次数事先已经知道的循环。对于循环次数事先不能确定的情况,采用while语句实现起来会更方便。第16页/共44页4.3 do-while4.3 do-while语句语句 do-while语句又叫“直到型”循环语句,其一般格式为:do 循环体while(条件表达式);第17页/共44页【例4-104-10】编写程序求1+2+3+1001+2+3+100的和。#include void main()int sum=0,i=1;dosum=sum+i;
10、i=i+1;while(i=100);printf(sum=%dn,sum);第18页/共44页while语句和do-while语句的区别(1)do-while语句是先执行,再判断;而while语句是先判断,再执行。(2)do-while语句中循环体至少执行一次;而while语句中,如果第一次判断时条件就不成立,则循环体一次也不会执行。对于先执行,再判断的应用场合,采用do-while语句实现起来更方便。第19页/共44页【例4-114-11】编写一个口令输入程序,让用户输入口令,直至输对为止。假设口令为100100。要求分别采用do whiledo while和whilewhile两种循环语
11、句来实现。#include void main()int pwd;printf(请输入口令:);scanf(%d,&pwd);while(pwd!=100)printf(请输入口令:);scanf(%d,&pwd);printf(口令正确!);#include void main()int pwd;doprintf(请输入口令:);scanf(%d,&pwd);while(pwd!=100);printf(口令正确!);第20页/共44页4.4 break4.4 break语句和语句和continuecontinue语句语句 前面介绍的例子都是执行到循环条件不成立时才正常退出循环,但在实际应用
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 循环 结构 程序设计 素材
限制150内