C语言程序设计 (17)_第1页
C语言程序设计 (17)_第2页
C语言程序设计 (17)_第3页
C语言程序设计 (17)_第4页
C语言程序设计 (17)_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

1、C语言程序设计任课教师任课教师:叶叶 华华统计机科学与软件学院统计机科学与软件学院第5章 循环结构程序设计n循环结构概述循环结构概述n while语句语句n do while语句语句n for语句语句n程序举例程序举例5.1 循环结构概述n当型循环结构当型循环结构n直到型循环结构直到型循环结构循环结构当型结构例例:罚写词组罚写词组PA假真当P为真A抄写犯错词组不足100遍?接着抄写假真循环结构直到型结构例例:为湖水清理水草为湖水清理水草水草清理干净了?清理水草假真AP真假A直到P为真5.1 循环结构概述nC语言可实现循环结构的关键语句语言可实现循环结构的关键语句:nwhile 语句语句ndo

2、while 语句语句nfor 语句语句5.2 while语句n履行流程 n语法标准 表达式表达式循环体循环体假假(0)真真(非非0)whilewhile(表达式表达式) 循环体语句循环体语句5.2 while语句n特点特点:n当型结构当型结构:先推断表达式先推断表达式,后履行后履行循环体循环体n讲明讲明:n循环体有大概一次也不履行循环体有大概一次也不履行n循环体可为随意率性类型语句循环体可为随意率性类型语句n循环体如果见谅多条语句应其组循环体如果见谅多条语句应其组织为复合语句织为复合语句 表达式表达式循环体循环体假假(0)真真(非非0)while5.2 while语句n例例5-1:用用whil

3、e循环求循环求7个职员的周薪金个职员的周薪金,同时同时表现表现.薪金统计程式为薪金统计程式为:周薪金周薪金 = 每周任务时候(小时)每周任务时候(小时) 收入(每收入(每小时)小时)统计该职工周薪金同时输出表现假假(0)真真(非非0)记录已操作职工数变量count_emp初始化输入某职工任务时候和每小时薪金未操作完7名职工?count_emp增1计数main() int count_emp; int hours; double rate,pay; while语句main() count_emp = 0; *count_emp初始化为0* while (count_emp); scanf(%d,

4、&hours); printf(Please input Rate); scanf(%lf,&rate); pay = hours * rate; printf(Pay is $%6.2fn,pay); count_emp+; *count_emp增1计数* 循环操纵前提循环操纵前提循环操纵变量初始化循环操纵变量初始化循环操纵变量更新循环操纵变量更新5.2 while语句n讲明讲明:n while之后的表达式称为循环重复前提之后的表达式称为循环重复前提.n变量变量count_emp的值决意了循环体是的值决意了循环体是否重复否重复,所以它被称为循环操纵变量所以它被称为循环操纵变量

5、.循循环操纵变量必须被初始化、检验、更环操纵变量必须被初始化、检验、更新新.n初始化初始化:到达到达while语句之前语句之前 count_emp被设置为初值被设置为初值0 n检验检验:在最先每次循环重复之前在最先每次循环重复之前 count_emp 被检验被检验n更新更新:在每次循环期间在每次循环期间count_emp被更被更新新5.2 while语句n例例5-2:用用while循环求循环求 1001insum sum + n假假(0)真真(非非0)记录累加信息的变量n初始化记录累加和变量sum初始化未操作完全部信息的累加?n增1计数输出累加和例例5-2 用用while循环求循环求 1001

6、nn *0502sum.c* #include main() int i,sum; i = 1; sum = 0; while(i=100) sum=sum+i; i+; printf(%d,sum); 循环初值循环初值循环终值循环终值循环变量增值循环变量增值循环前提循环前提循环体循环体1001in5.2 while语句n例例5-3:编程求编程求1 + 3 + 5 + 7 + ,直到累加和直到累加和大于大于100.程序输出累加和结论和累加项数程序输出累加和结论和累加项数.sum sum + (2 * n + 1)假假(0)真真(非非0)记录累加信息的变量n初始化为0记录累加和变量sum初始化为

7、0sum=100?n增1计数输出累加和sum、累加项数n例例5-31001nn *oddsum.c* #include main() int n ,sum; n = 0; sum = 0; while(sum=100) sum=sum+(2*n+1); n+; printf(“累加和累加和=%d,相加次数相加次数=%d, sum, n); 循环初值循环初值循环终值循环终值循环变量增值循环变量增值循环前提循环前提循环体循环体do 循环体语句循环体语句 while(表达式表达式); do循环体循环体表达式表达式假假(0)真真(非非0)while5.3 do-while语句n履行流程 n语法标准 表

8、达式循环体假(0)真(非0)循环体While循环n特点特点:n当型结构当型结构:先履行循环体先履行循环体,后推断表达式(直到型)后推断表达式(直到型)n讲明讲明:n到少履行一次循环体到少履行一次循环体ndo-while可转化成可转化成while结构结构5.3 do while语句n例例5-4:编程统计编程统计输入的一组考输入的一组考试成绩的平均试成绩的平均成绩成绩,输入输入-1示示意输入结束意输入结束. 成绩累加成绩累加假假(0)真真(非非0)输入一输入一个成绩个成绩成绩个数增成绩个数增1计数计数输入的输入的成绩不成绩不是是-1? int score,count,sum; double avg

9、; count = 0; sum = 0; do printf(Please input score:); scanf(%d,&score); sum += score; count+; while(score != -1); count-; avg = (double)(sum+1) count; printf(The average is %4.2fn,avg);循环结束前提、循环次数未知5.3 do while语句n例例5-5:用用while循环求循环求 1001insum sum + n假假(0)真真(非非0)记录累加信息的变量n初始化记录累加和变量sum初始化未操作完全部信息

10、的累加?n增1计数输出累加和 *0505sum.c* #include main() int i,sum; sum=0; i=1; do sum+=i; i+; while(i=100); printf(%d,sum); 循环结束前提、循环次数已知循环操纵变量循环操纵变量更新while和和dowhile对比对比*0505sum.c*#include main() int i,sum=0; i = 1; do sum+=i;i+; while(i=10); printf(%d,sum);*0502sum.c*#include main() int i,sum=0; i = 1; while(i=

11、10) sum+=i;i+; printf(%d,sum);结论结论:当当 while后的表达式第一次的值为后的表达式第一次的值为“真真”时时,两种结论一样两种结论一样,否那么差别否那么差别.for(表达式表达式1;表达式表达式2 ;表达式表达式3) 循环体语句循环体语句表达式表达式2循环体循环体假假(0)真真(非非0)for表达式表达式1表达式表达式35.4 for语句n履行流程 n语法标准 for(表达式表达式1;表达式表达式2 ;表达式表达式3) 循环体语句循环体语句5.4 for语句n for语句的代表性使用 n表达式1:循环操纵变量初始化n表达式2:循环重复前提检验n表达式3:循环操

12、纵变量更新n语法标准 for( 循环变量赋初值循环变量赋初值; 循环前提循环前提; 循环变量增值循环变量增值) 循环体语句循环体语句 5.4 for语句n例例5-6:用用for循环求循环求 1001insum sum + n假假(0)真真(非非0)记录累加信息的变量n初始化记录累加和变量sum初始化未操作完全部信息的累加?n增1计数输出累加和 *0506sum.c* #include main() int i,sum; sum=0; for( i=1; i=100; i+ ) sum += i; printf(%d,sum); 循环结束前提、循环次数已知循环操纵变量循环操纵变量更新For语句的

13、三个表达式可灵活使用语句的三个表达式可灵活使用例例:#include main( ) int i=0; for( ; i10; i+) putchar(a+i); 例例: #include main( ) int i=0; for( ; i10; ) putchar(a+(i+); 例例: #include main( ) int i=0; for( ; i10; putchar(a+i), i+ ) ; 省略表达式省略表达式1省略表达式省略表达式1,3省略循环体省略循环体main() int i,j,k; for( i=0,j=100; i=j; i+,j- ) k=i+j; printf(%d+%d=%dn,i,j,k); #includemain() char c; for(;(c=getchar()!=n;) printf(%c ,c);#include main() int i,c; for(i=0;(c=getchar()!=n;i+=3) printf(%c ,i+c);结论结论:for语句的功能强盛语句的功能强盛.表达式表达式 1、3为逗号表达式为逗号表达式挑选三种循环的一样原那

温馨提示

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

评论

0/150

提交评论