C语言-5循环结构-案例_第1页
C语言-5循环结构-案例_第2页
C语言-5循环结构-案例_第3页
C语言-5循环结构-案例_第4页
C语言-5循环结构-案例_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第五章循环结构程序设计,C语言程序设计算法的描述SCS-SWPU,2,课程引入,例:1+2+3该如何实现,定义变量sum=0,i=1,又例:,3,第五章循环结构程序设计,while语句,5.1,do-while语句,5.2,5.3,C语言程序设计第一章C语言概述SCS-SWPU,for语句,break语句和continue语句,5.4,5.5,程序举例,C语言程序设计算法的描述SCS-SWPU,4,5.1while语句,1.while循环语句的形式while(表达式)循环语句,先判断条件,后执行语句,表达式,语句,零,非零,2.执行过程:,跳出循环,此处无;,C语言程序设计算法的描述SCS-SWPU,5,例1:求,main()inti=1,sum=0;while(i=100)sum=sum+i;i+;printf(%d,sum);,注意:(1)循环体如果包含一个以上的语句,应该用花括弧括起来,以复合语句形式出现.(2)在循环体中应有使循环趋向于结束的语句。,5.1while语句,C语言程序设计算法的描述SCS-SWPU,6,1.do-while循环语句的形式do循环体while(条件表达式);,先执行语句,后判断条件,2.执行过程,此处有;,5.2do-while语句,C语言程序设计算法的描述SCS-SWPU,7,例2:用do-while型循环求:,main()inti=1,sum=0;dosum=sum+i;i+;while(i=100);printf(%d,sum);,5.2do-while语句,C语言程序设计算法的描述SCS-SWPU,8,【例5.3】while和do-while循环的比较。,#includevoidmain()intsum=0,i;scanf(%d,?,#includevoidmain()intsum=0,i;scanf(%d,运行结果:1sum=55再运行一次:11sum=0,运行结果:1sum=55再运行一次:11sum=11,结论:(1)dowhile循环语句首先执行循环体,然后计算表达式并检查循环条件,所以循环体至少执行一次。(2)退出dowhile循环的条件与退出while循环的条件相同,5.2do-while语句,C语言程序设计算法的描述SCS-SWPU,9,一般格式:,执行流程:,for(表达式1;表达式2;表达式3)循环体语句,C语言中的for语句使用最为灵活,不仅可以用于循环次数已经确定的情况,而且可以用于循环次数不确定而只给出循环结束条件的情况,它完全可以代替while语句。,5.3for语句,C语言程序设计算法的描述SCS-SWPU,10,循环初始条件,循环控制条件,循环体,5.3for语句,循环变量增值/减值,for语句等价于下列语句:表达式1;while(表达式2)语句;表达式3;,C语言程序设计算法的描述SCS-SWPU,11,例用for循环求,#includemain()inti,sum=0;for(i=1;i=100;i+)sum+=i;printf(%d,sum);,相当于:i=1,sum=0;while(i=100)sum=sum+i;i+;,for语句最简单的形式:for(循环变量赋初值;循环条件;循环变量增值)循环体,5.3for语句,C语言程序设计算法的描述SCS-SWPU,12,5.3循环结构总结,用上述三种循环语句求,while语句:,n=1;s=1;while(n=100)s=s*n;n+;,n=1;s=1;dos=s*n;n+;while(n=100);,do-while语句:,for(n=1,s=1;n=100;n+)s=s*n;,for语句:,C语言程序设计第二章数据类型、运算符和表达式SCS-SWPU,13,逗号运算符,逗号可作分隔符使用,将若干变量隔开如inta,b,c;又可作运算符使用:其一般形式:表达式1,表达式2,表达式n;,14,【例】main()inta,b,x;x=(a=8,b=15,b+,a+b);printf(“a=%d,b=%d,x=%dn”,a,b,x);,输出结果:a=8,b=16,x=24,【例】main()inta,b,x;x=a=8,b=15,b+,a+b;printf(“a=%d,b=%d,x=%dn”,a,b,x);,输出结果:a=8,b=16,x=8,逗号运算符,C语言程序设计第二章数据类型、运算符和表达式SCS-SWPU,14,C语言程序设计算法的描述SCS-SWPU,15,5.3for语句使用格式说明,for(循环变量赋初值;循环条件;循环变量增值)循环体语句,说明:for语句中任意一个表达式均可省,但分号“;”不可省(1)省略“表达式1”:此时在for语句之前给循环变量赋初值。如for(;i=100;i+)sum=sum+i;执行时,跳过“求解表达式1”这一步,其他不变。,i=1;for(;i=100;i+)sum=sum+i;,C语言程序设计算法的描述SCS-SWPU,16,5.3for语句使用格式说明,for(循环变量赋初值;循环条件;循环变量增值)循环体语句,说明:(2)省略表达式2:即不判断循环条件,认为表达式2始终为真。例如:for(i=1;i+)sum=sum+i;它相当于:i=1;while(1)sum=sum+1;i+;,C语言程序设计算法的描述SCS-SWPU,17,5.3for语句使用格式说明,for(循环变量赋初值;循环条件;循环变量增值)循环体语句,说明:(3)省略表达式3:此时程序设计者应另外设法保证循环能正常结束。如:for(i=1;i=100;)sum=sum+i;i+;,C语言程序设计算法的描述SCS-SWPU,18,for语句的使用格式灵活:表达式类型任意,可省略,但分号“;”不可省当表达式2被省略时,需要在循环体中设置循环结束语句,否则构成死循环无限循环:for(;)括号后边的表达式可以是任意有效的C语言表达式,5.3for语句总结,for(i=1;i+)sum+=i;,for(i=1;1;i+)sum+=i;,C语言程序设计算法的描述SCS-SWPU,19,例1:#includemain()inti;for(i=0;i10;i+)putchar(a+i);,运行结果:abcdefghij,例2:#includemain()inti=0;for(;i10;i+)putchar(a+i);,例3:#includemain()inti=0;for(;i10;)putchar(a+(i+);,例4:#includemain()inti=0;for(;i10;putchar(a+i),i+);,省略表达式1,省略表达式1、3,省略循环体,结论:for语句的功能强大!,5.3for语句总结,C语言程序设计算法的描述SCS-SWPU,20,例5main()inti,j,k;for(i=0,j=100;i=j;i+,j-)k=i+j;printf(%d+%d=%dn,i,j,k);,例6#includemain()charc;for(;(c=getchar()!=n;)printf(%c,c);,表达式1、3为逗号表达式,结论:表达式2:进行逻辑判断,只要为真就执行循环!如:for(i=0;i=5;i+)sum+=i;for(i=0;i=5;i+)sum+=i;表达式1,3:可以是C语言任意合法表达式,5.3for语句总结,若输入字符串:abcde,则以下while循环体将执行()次ch=getchar();while(ch=e)printf(“*”);A)5B)4C)1D)0有下列程序:voidmain()intk=5;while(-k)printf(%d,k-=3);printf(n);执行后的输出结果是()。A)1B)2C)4D)死循环,真题练习,C语言程序设计算法的描述SCS-SWPU,21,若变量已正确定义,有下列程序段:i=0;doprintf(%d,i);while(i+);printf(%dn,i);其输出结果是()。A)0,0B)0,1C)1,1D)程序进入无限循环下列程序运行后的输出结果是()。main()charc1,c2;for(c1=0,c2=9;c1c2;c1+,c2-)printf(%c%c,c1,c2);printf(n);,C语言程序设计算法的描述SCS-SWPU,22,C语言程序设计算法的描述SCS-SWPU,23,例题1:打印九九乘法表,5.3循环嵌套,C语言程序设计算法的描述SCS-SWPU,24,循环的嵌套-在循环体内又包含一个循环结构,称为循环嵌套。,for(;)dowhile();while().,循环嵌套的执行流程三种循环(while循环、do-while循环和for循环)可以互相嵌套。,5.3循环嵌套,C语言程序设计算法的描述SCS-SWPU,25,多行多列数据输出循环嵌套外循环:控制行内循环:控制列,例题1:打印九九乘法表,5.3循环嵌套,C语言程序设计算法的描述SCS-SWPU,26,5.3循环嵌套,C语言程序设计算法的描述SCS-SWPU,27,#includevoidmain()inti,j;printf(t九九乘法表n);printf(t-n);for(i=1;i=9;i+)for(j=1;j=9;j+)printf(%d%d=%2dt,i,j,i*j);printf(n);,5.3循环嵌套,C语言程序设计算法的描述SCS-SWPU,28,?,5.3循环嵌套,百钱买百鸡鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一用百钱买百鸡,问翁、母、雏各几何?分析:设cock、hen、chicken表示三者数量,其中,cock的取值范围(0,20),hen的取值范围为(0,33),则chicken=100-cock-hen,且5*cock+3*hen+chicken/3=100定义变量用cock和hen的双重循环确定chicken的值如果满足5*cock+3*hen+chicken/3=100则符合题目要求直道全部状态测试完,C语言程序设计算法的描述SCS-SWPU,29,循环嵌套练习,30,第五章循环结构程序设计,while语句,5.1,do-while语句,4.2,4.3,C语言程序设计第一章C语言概述SCS-SWPU,for语句,break语句和continue语句,5.4,5.5,程序举例,C语言程序设计算法的描述SCS-SWPU,31,5.4break和continue语句,1、break语句一般形式:break;功能:在switch语句中,结束case分支,跳出switch语句在循环语句,终止并跳出循环体说明:break只能终止并跳出最近一层的结构break只能用于循环语句和switch语句中,C语言程序设计算法的描述SCS-SWPU,32,5.4break和continue语句,C语言程序设计算法的描述SCS-SWPU,33,5.4break和continue语句,C语言程序设计算法的描述SCS-SWPU,34,2、continue语句一般形式:continue;功能:结束本次循环,跳过循环体中尚未执行的语句,进行下一次是否执行循环体的判断说明:仅用于循环语句中continue语句仅结束本次循环break语句则是结束整个循环过程。,5.4break和continue语句,C语言程序设计算法的描述SCS-SWPU,35,5.4break和continue语句,C语言程序设计算法的描述SCS-SWPU,36,例5.6把100200之间的不能被3整除的数输出。,#includevoidmain()intn;for(n=100;n=200;n+)if(n%3=0)continue;printf(%d,n);,5.4break和continue语句,#includevoidmain()intn;for(n=100;n=200;n+)if(n%3!=0)printf(%d,n);,C语言程序设计算法的描述SCS-SWPU,37,例求输入的十个整数中正整数的个数及其和与平均值,#includemain()inti,num=0,a;floatsum=0;for(i=0;i10;i+)scanf(%d,5.4break和continue语句,C语言程序设计算法的描述SCS-SWPU,38,判断m是否素数。,素数判别,C语言程序设计算法的描述SCS-SWPU,39,#includevoidmain()intm,i;printf(inputanumber:n);scanf(%d,40,第五章循环结构程序设计,while语句,5.1,do-while语句,4.2,4.3,C语言程序设计第一章C语言概述SCS-SWPU,for语句,break语句和continue语句,5.4,5.5,程序举例,输出3到500之间的所有素数,C语言程序设计算法的描述SCS-SWPU,41,查找区间内的素数,C语言程序设计算法的描述SCS-SWPU,42,判断m是否素数。,举例,C语言程序设计算法的描述SCS-SWPU,43,#includevoidmain()intm,i,r;for(m=3;m=500;m+)for(i=2;i=m;i+)if(m%i=0)break;if(i=m)printf(%dn,m);,素数判别区间内的素数输出,C语言程序设计算法的描述SCS-SWPU,44,例1求Fibonacci数

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论