C语言程序设计PPT教学课件-第五章 循环结构程序设计.ppt_第1页
C语言程序设计PPT教学课件-第五章 循环结构程序设计.ppt_第2页
C语言程序设计PPT教学课件-第五章 循环结构程序设计.ppt_第3页
C语言程序设计PPT教学课件-第五章 循环结构程序设计.ppt_第4页
C语言程序设计PPT教学课件-第五章 循环结构程序设计.ppt_第5页
免费预览已结束,剩余22页可下载查看

下载本文档

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

文档简介

复习,选择程序设计 if (表达式1) 语句1 else if (表达式2) 语句2; else 语句3; ,条件,简单条件通常是两个数据的大小关系。 复杂条件通常是简单条件的与、或、非关系。 切记:1=1&x10才是正确的表示。 if语句可以实现选择功能。 if语句根据数值反向推知条件是否成立。 0 表示条件不成立 非0表示条件成立,#include main() char c1=c,c2=h,c3=i,c4=n,c5=a; c1+=4; c2+=4; c3+=4; c4+=4; c5+=4; putchar(c1); putchar(c2); putchar(c3); putchar(c4); putchar(c5); printf(“密码是%c %c %c %c %cn”,c1,c2,c3,c4,c5); ,84页第6,第五章 循环结构程序设计,分析与设计 语言描述 分析执行过程 问题 算法 程序 计算机,生活中经常遇到需要重复处理的问题 输入全班50个同学的成绩、统计全班50个同学的平均成绩 检查30个同学的成绩是否合格,5.1 为什么需要循环结构,循环结构的特点,程序的流程是在给定条件时,反复执行某个程序段。,循环结构中的两个概念,循环体 循环条件,什么是循环结构,如何实现循环结构,5.2 用while语句实现循环,执行过程,(1)先计算表达式的值 ; (2)表达式的值为真(非0) 时执行循环体中的语句; (3)重复上面步骤。 (4)表达式的值为假(0) ,则 结束循环。,while (表达式) 语句,可以是逻辑表达式、关系表达式、算数表达式(非0为真,0为假)。while (3)和while (0) 从程序设计的角度上说不合理,但是合法的。例如: while (3) 表示无限循环 while (0) 表示不进入循环体,一.用while语句实现循环,例1:任意输入十个数,求它们的和.,main() int i=0; float s=0,x; while (i10) scanf(“%f”, ,while(i100),例3:输入一串字符,求字符个数。,main() char i; int n=0; i=; while(i!=n) scanf(“%c”,例2:求1+2+3+.+100的和。,main() int i,sum; i=1;sum=0; while(i=100) sum=sum+i; i=i+1; printf(“sum=%d”,sum);,while(i100),例4:计算10!,main() int i=1; long int t=1; while (i=10) t=t*i; i+; printf(“10!=%ldn”,t); ,例题5:找出任意输入的十个数中最大的一个。,main() float x;int n; scanf(“%f”,5.3 用dowhile语句实现循环,例:将上面计算10!并输出结果的程序用do-while语句写出:,我们将while和do-while循环做一下比较:,main() int i,s; i=1;s=0; while(i=100) s=s+i; i=i+1; printf(“sum=%d”,s);,5.4 用for语句实现循环,例题1:求1+2+3+.+100的和。 main() int i,s=0; for (i=1;i=100;i+) s=s+i; printf(“s=%d”,s);,执行过程: 求出表达式1的值; 对“表达式2”进行判断,若条件为真执行循环体; 求解“表达式3”; 转回(2)继续执行; 循环结束,执行for下面的语句。,main() int i=1; long int t=1; while (i=10) t=t*i; i+; printf(“10!=%ldn”,t); ,例2:将上面计算10!的程序用 for语句写出:,main() int i; long t; t=1; for(i=1; i=10; i+) t=t*i; printf(“10!=%ldn”,t); ,说明:,表达式1:进入循环体之前给某些变量赋初值。若省略,可在for语句前给变量赋初值。,main() int i=1; long sum=1; for( ; i=10; i+) sum=sum*i; printf(“10!=%ldn”,sum); ,for 循环的三个表达式起着不同的作用,根据需要可以省略。,表达式2:决定循环的条件,若省略,则为无限循环。,如: for(i0; ;i+) 语句,表达式3:用于循环一次后对某些变量进行修改。若省略,可在循环体内对变量进行修改,main() int i; long sum=1; for(i=1 ; i=10 ; ) sum=sum*i; i+; printf(“10!=%ldn”,sum); , for 语句最为灵活,它完全可以代替的while语句。, for语句功能很强,其中表达式1和表达式3可以是逗号表达式,但为增强程序的可读性,一般不要把与循环无关的东西放到for语句中。,例3:求两个正整数的最大公约数,穷举法的思想: 在规定的范围内逐个处理数据。 应用穷举法: 分析穷举的范围。 分析每次处理的实质。,穷举法-充分利用for的方法,算法思想:若有两个正整数ab,则两个数的最大公约数一定在1,b之间。 设置一个循环变量i,使其从1增加到b,依此测试变量i能否同时整除整数a和b。如果能,则把i的值放到一个变量s中。循环结束时,s中保留的值就是所要的结果。 第一个公约数就是最大公约数,因此在找到第一个公约数之后,应该强行终止循环。 使用break语句,可以强行终止break语句所在的循环。,main() int a,b,i; scanf(“%d%d”, 7 9 8 4,算法思想:穷举法 素数就是能够被1和其自身整除的自然数。 设置一个循环变量i,使其从2变化到m-1,在循环体内 测试每一个i的值,看能否整除m,只要有一个i能被m整除,说明m不是素数,强行终止循环。此时i一定小于或等于m-1。 当所有i值都不能整除m时,循环自动结束。此时i一定大于或等于m。 因此:若i大于或等于m,则m为素数,若i小于或等于m-1则m不是素数。,main() int m,i; scanf(“%d”, m=5,m=8,练习:判断一个自然数m(m1)是否为素数,5.5 循环的嵌套,例1:打印如下图形: * * * * *,main() int i,j; for (i=1;i=5;i+) for (j=1;j=i;j+) printf(“*”); printf(“n”);,例2:求3!+5!+7!+9!,main() int i,j; long t,s=0; for (i=3;i=9;i=i+2) t=1; for(j=1;j=i;j+) t=t*j; s=s+t; printf(“s=%ld”,s);,例1:打印如下图形: * * *,main() int i,j; for (i=1;i=3;i+) for (j=1;j=3-i;j+) printf(“ ”); for (j=1;j=2*i-1;j+) printf(“*”); printf(“n”);,5.6 几种循环语句的比较,共同特点:循环控制条件非零时,执行循环体,否则终止循环。,循环体语句可以是任何语句:简单语句、复合语句、空语句。,while和for:先判断循环控制条件,循环体可能一次也不执行; do-while:后判断循环控制条件,循环体至少执行一次。,在循环体内或循环条件中必须有使循环趋于结束的语句,否则会出现死循环等异常情况。,三种循环可以处理同一问题,一般情况可以互相代替。实际应用中,根据具体情况来选用不同的循环语句。,5.7 改变循环执行的状态,例题:打印半径为110的圆的面积,如果面积超过100,则不再打印。 #include #define pi 3.14159 main() int r; floa

温馨提示

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

评论

0/150

提交评论