欢迎来到天天文库
浏览记录
ID:39320057
大小:231.76 KB
页数:27页
时间:2019-06-30
《C语言程序设计第五讲》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、C语言程序设计主讲:杨雪青E-mail:yangxueqing@ncwu.edu.cn华北水利水电学院计算中心7/19/2021一、几种循环的比较C语言中,三种循环结构都可以用来处理同一个问题,但在具体使用时存在一些细微的差别。如果不考虑可读性,一般情况下它们可以相互代替。循环变量初始化:while和do-while循环,循环变量初始化应该在while和do-while语句之前完成;而for循环,循环变量的初始化可以在表达式1中完成。循环条件:while和do-while循环只在while后面指定循环条件;而for循
2、环可以在表达式2中指定。循环变量修改使循环趋向结束:while和do-while循环要在循环体内包含使循环趋于结束的操作;for循环可以在表达式3中完成。for循环可以省略循环体,将部分操作放到表达式2,表达式3中,for语句功能强大。while和for循环先测试表达式,后执行循环体,而do-while是先执行循环体,再判断表达式。(所以while,for循环是典型的当型循环,而do-while循环可以看作是直到型循环)。第五讲循环结构程序设计(二)7/19/2021一、几种循环的比较三种基本循环结构一般可以相互替代
3、,不能说哪种更加优越。具体使用哪一种结构依赖于程序的可读性和程序设计者个人程序设计的风格(偏好)。我们应当尽量选择恰当的循环结构,使程序更加容易理解。(尽管for循环功能强大,但是并不是在任何场合都可以不分条件使)。例:将50-100之间的能被3整除的数输出(用三种循环结构实现)第五讲循环结构程序设计(二)/*用while语句实现*/main(){inti=50;while(i<=100){if(i%3==0)printf(“%4d”,n);i++;}}7/19/2021二、循环的嵌套所谓循环的嵌套是指一个循环体内又
4、包含了另一个完整的循环结构。C语言允许循环结构嵌套多层。循环的嵌套结构又称为多重循环。第五讲循环结构程序设计(二)do循环体1for(表达式1;表达式2;表达式3)循环体2while条件7/19/2021二、循环的嵌套2.循环嵌套的执行过程例.写出下列程序的执行结果*********************#includemain(){inti,j;for(i=1;i<=6;i++){for(j=1;j<=i;j++)printf("*");printf("");}}第五讲循环结构程序设计(二)
5、7/19/2021例计算并输出10以内(包括10)所有自然数的阶乘值。即计算1!,2!,3!,4!,5!,6!,7!,8!,9!,10!。采用的方法是,对于10以内的每一个自然数分别求它们的阶乘值。其流程图如图4.7所示。显然,这是一个二重循环结构。第五讲循环结构程序设计(二)7/19/2021相应的C程序如下:#include"stdio.h"main(){intn,k;doubles;for(n=1;n<=10;n=n+1){s=1.0;for(k=1;k<=n;k=k+1)s=s*k;printf("%2d!=
6、%16.7f",n,s);}}第五讲循环结构程序设计(二)7/19/2021例百钱买百鸡:公元5世纪末,我国古代数学家张建丘在《算经》中提出了“问题”;“鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一。百钱买百鸡,问鸡翁、母、雏各几何?”此题用代数方法是无法求解的。因为有3个未知数,只有2个方程式。设公鸡x只,母鸡y只,小鸡z只,可以列出方程:x+y+z=100①5x+3y+z/3=100②由于无法直接用代数方法解,可以用“穷举法”来解此问题。分析一下x,y,z的可能取值范围:公鸡最多能买20只,故0≤x<20;
7、母鸡最多能买33只,所以0≤y<33;在x,y确定后,自然就得出z=100-x-y。第九讲循环结构程序设计(三)7/19/2021百钱买百鸡问题程序#include"stdio.h"main(){intx,y,z;printf("cockhenchick");for(x=0;x<=19;x++)for(y=0;y<=32;y++){z=100-x-y;if((5*x+3*y+z/3==100)&&(z%3==0))printf("%5d,%5d,%5d",x,y,z);}}第九讲循环结构程序设计(三)7/
8、19/2021例:有一个数列,前两个数是1,1,第三个数是前两个数之和,以后每个数都是其前两个数之和,此数列的前几个数为1,1,2,3,5,8…要求输出前20个数。数列称为Fibonacii,斐波那契数列第九讲循环结构程序设计(三)递推过程:1123581321…(第1次)f1f2+f1f2(第2次)(第3次)f1f2+f1f2f1f2+f1f
此文档下载收益归作者所有