单元5-循环结构程序设计.ppt_第1页
单元5-循环结构程序设计.ppt_第2页
单元5-循环结构程序设计.ppt_第3页
单元5-循环结构程序设计.ppt_第4页
单元5-循环结构程序设计.ppt_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

1、, 课程,单元五 循环结构程序设计,主要内容,1、循环的本质 2、三种循环结构语句(重点) while语句 do-while语句 for语句 3 循环结构控制语句 break语句 continue语句 4 综合应用案例,已知三边长,求三角形面积?,问题引入,每次计算完毕,程序会退出,再次计算需要重新运行程序,根据指定的条件重复执行一条或多条语句,这就是循环结构。,5.1 循环的本质,printf(*n ); printf(*n ); printf(*n ); printf(*n ); printf(*n ); printf(*n ); printf(*n ); printf(*n ); pri

2、ntf(*n ); printf(*n );,for(int i=1;i=8;i+) printf(“*n );,某些相同的代码,不必重复书写,利用循环结构即可达到自动重复执行的目的,这样提高了程序编写的效率,减少了源代码的存储空间,这就是循环的本质。,5.1 循环的本质,for(int i=1;i=8;i+) printf(“*n );,循环结构三要素: 1、循环从什么时候开始,即“循环变量初值”。 2、满足什么条件要循环,即“循环控制条件表达式”。 3、每次循环要做什么,即“反复执行的语句”,简称为“循环体”。,1,2,3,5.1 三种循环结构语句,while循环的一般形式,while(表

3、达式),循环体;,while(i5),printf( %d, i);,i + ; ,while循环执行过程,执行循环体,真,退 出,假,循环前:,i=1,i,第一次,循环次数,i5,1,1,第二次,2,2,第三次,3,3,第四次,4,4,退出循环:,i=5,5.1 三种循环结构语句,while循环的一般形式,while(表达式),循环体;,当表达式为真(表达式为非0)时,执行while语句中的语句。其特点是:先判断表达式,后执行语句。while循环称为当型循环。,注意: (1) 循环体如果包含一个以上的语句,应该用花括号括起来,以复合语句形式出现。 (2) 在循环体中应有使循环趋向于结束的语句

4、。,例5-1,编程序,计算 s=1+2+3+100,(1) 如何得到加数?,i:,while(i=100), s=s+i;,i + ;,i=1;,(2) 如何实现累加?,s为被加数,循环一次加一个,初始:s=0,i=1:,s+i,s,s=s+i;,i=2:,i=100:,1、2、100,s=0;,s+=i;,s+i,s,s+i,s,void main ( ), int i,s;,i=1;,s=0;,while(i=100), s+=i;,i+; ,1,1+2,1+2+.+100,i=3:,s,s+i,1+2+3,printf( s=%d ,s);,【随堂练习5-1】 利用while语句计算自然

5、数序列1,2,3,n的和,n的值在程序执行时输入。,void main() int i,s; i=1; s=0; while(i=100) s+=i; i+; printf(sum=%d,s); ,5.2 三种循环结构语句,#include void main( ) int i,n,s; i=1; s=0; printf(请输入n的值:); scanf(%d, ,参考代码,5.2 三种循环结构语句,5.2 三种循环结构语句,do-while循环的一般形式,do,循环体;,while(表达式) ;,while(i5);,printf(%d, , i);,i + ; ,循环执行过程,执行循环体,真

6、,退 出,假,void main( ), int i;,i=1;,循环前:,i=1,i,第一次,循环次数,1,1,第二次,2,2,第三次,3,3,第四次,4,4,退出循环:,i=5,do,例5-3,编程序,计算 s=1+2+3+100,#include stdio.h void main( ) int i=1,sum=0; do sum=sum+i; i+; while (i=100); printf(sum=%d,sum); ,【随堂练习5-2】 利用do-while语句计算1+1/2+1/3+1/n。,5.2 三种循环结构语句,#include void main( ) int i,n;

7、float s; i=1; s=0; printf(请输入n的值:); scanf(%d, ,参考代码,5.2 三种循环结构语句,5.2 三种循环结构语句,for循环的一般形式,for(表达式1;表达式2;表达式3),循环体;,printf(“*”);,for循环执行过程,计算表达式1,真,退 出,假,void main( ), int i;, ,for (i=0;i10;i+),执行循环体,计算表达式3,5.2 三种循环结构语句,for循环的一般形式,for(表达式1;表达式2;表达式3),循环体;,printf(“*”);,for (k=0;k10;k+),最普通的情况:表达式1是给循环变

8、量赋初值,表达式2是循环变量的关系型表达式,表达式3是循环变量的自加自减,使循环趋结束。,for (k=10;k=1;k-) printf(“%d”,k);,例5-4,编程序,计算 s=1+2+3+100,#include stdio.h void main( ) int i,sum=0; for(i=1;i=100;i+) sum=sum+i; printf(sum=%dn,sum); ,for(表达式1;表达式2;表达式3),循环体;,(1) for语句中的“表达式1”可以省略,此时应在for语句之前给循环变量赋初值。 (2) 如果表达式2省略,此时表达式2始终为真,循环无终止地进行下去。

9、 (3) 表达式3也可以省略,但此时程序设计者应另外设法保证循环能正常结束。 (4) 可以省略表达式1和表达式3,只有表达式2,即只给循环条件。,for(i=1;i=100;i+) sum=sum+i;,说明:,例5-5,编程序,计算 s=1+2+3+100,#include void main( ) int s=0,i; i=1; /表达式1移至for语句之前 for( ;i=10; ) s=s+i; i+; /表达式3移至循环体末尾 printf(s=%d,s); ,i=1; while(i=10) s+=i; i+; ,例 编程计算n的阶乘。,n!=12 3 (n-1)n,思路:,类似于

10、累加求和,每一次循环乘上一个数字,求和将和初始化为0,这里应把积初始化为?,随堂练习,n!=12 3 (n-1)n,#include stdio.h void main( ) int n,i,p; scanf(%d, ,5.3 循环结构控制语句,break语句 :结束循环,break语句可以使流程跳出switch结构,继续执行switch语句下面的语句。break语句还可以用于跳出循环。 break作用使流程从循环体内跳出循环体,即提前结束循环。break语句只能用于循环语句和switch语句内,不能单独使用或用于其他语句中。,while(表达式1) if(表达式2) break; ,5.3

11、循环结构控制语句,continue语句 :结束本次循环 ,即跳过本次循环下面尚未执行的语句,接着进行下一次循环。,for(int k=1;k=50;k+) if(k%3=0 ,读程序写结果,continue;,break;,例5-6,编程序,输入若干字符,对输入的英文字母原样输出,其他字符不输出,直到输入回车键结束。,#include void main( ) char ch; while(1) ch=getchar(); if(ch=n) break; else if(ch=a ,参考代码,5.4 循环的嵌套,一个循环体内又包含另一个完整的循环结构,称为循环的嵌套。 while循环、do-w

12、hile循环和for循环可以互相嵌套。,while( ) while( ) ,while( ) do while( ); ,for(;) for(;) ,5.4 循环的嵌套,#include void main( ) int i,j; for (i=1; i=9; i+) for (j=1; j=i;j+) printf(%d*%d=%d ,i,j,i*j); printf(n); ,读程序写结果,5.5 综合应用案例,例5-8,输入一行字符,分别统计其中英文字符、数字字符和其他字符的个数。,分析,1、 输入一行字符,字符的个数未定,可以用回车键作为输入结束的条件。 2、三个整型变量char_

13、num、int_num、other_num作为英文字符、数字字符和其他字符的计数器。 3、定义一个字符型变量ch保存从键盘输入的字符,当输入一个字符后判断该字符的类型,对相应的计数器加1。,#include void main() char ch; int char_num=0,int_num=0,other_num=0; while(ch=getchar()!=n) /回车键结束输入 if(ch=A ,参考代码,5.5 综合应用案例,例5-9,自幂数是指一个 n 位整数,它的每个位上的数字的 n 次幂之和等于它本身。当n为4时,自幂数称为玫瑰花数,试编程输出10009999范围内所有的玫瑰花

14、数。(如1643 )。,分析,1、 4位数中逐一查找。 2、分别取出个、十、白、千位,计算判断,#include void main() int i,n,a,b,c,d; for(i=1000;i=9999;i+) n=i; a=n%10; b=n/10%10; c=n/100%10; d=n/1000; if(a*a*a*a+b*b*b*b+c*c*c*c+d*d*d*d=n) printf(%6d,n); ,参考代码,中国古代数学家张丘建在他的算经中提出了著名的“百钱买百鸡问题”:鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁、母、雏各几何?,5元 3元 1元,5.5 综合应用案例,#include stdio.h main( ) int a,b,c ; /*a是公鸡数,b是母鸡数,c是小鸡数*/ printf(cock,hen,chickn); for(a=0;a=20;a+) for(b=0;b=33;b+) for(c=0;c=99;c+) if( a+b+c=100 ,参考代码,#include stdio.h void main( ) int a,b,c ; /*a是公鸡数,b是母鸡

温馨提示

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

评论

0/150

提交评论