上次作业参考答案.ppt_第1页
上次作业参考答案.ppt_第2页
上次作业参考答案.ppt_第3页
上次作业参考答案.ppt_第4页
上次作业参考答案.ppt_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

1,上次作业参考答案,/5.3 #include main() int a=3,b=4,c=5; printf(“输出结果是:n” ); printf(“a+bc ,2,/5.4 #include main() int a,b,c,t,max; printf(“请输入3个整数:n“); scanf(“%d,%d,%d“, ,/5.5 #include main() int x,y; printf(“请输入x:n“); scanf(“%d“, ,#include /5.4另解 void main() int a,b,c,t; scanf(“%d,%d,%d“, ,3,/5.9 #include main() int t,a,b,c,d; printf(“请输入4个整数:n“); scanf(“%d,%d,%d,%d“, ,4,/5.7 #include void main() int i,a,b,c,d,e; printf(“请输入一个正整数n“); scanf(“%d“, /其它几个同上处理 ,还可以按如下方法求解: e=i%10; d=i/10%10; c=i/100%10; /c=i/10/10%10; b=i/1000%10; /b=i/10/10/10%10 a=i/10000,5,上讲回顾,关系运算符、关系表达式; 逻辑运算符、逻辑表达式; 条件运算符的使用; 条件判断语句if等的使用; 多分支选择语句的使用; 选择结构程序设计;,6,本讲要点,掌握3种常见的C循环语句; 了解、掌握循环结构程序设计的3要素; 掌握循环结构语句执行的顺序; 掌握简单的循环结构程序设计;,7,循环结构程序设计, main() ,8,例1:从键盘输入三角形的三条边长,求三角形的面积。,/*第3讲源程序*/ #include #include main() int a,b,c; /*三个变量,用来表示三条边长*/ float s,area; /*area变量用来表示面积*/ scanf(“%d,%d,%d“, ,/*第4讲源程序*/ #include #include main() int a,b,c; /*三个变量,用来表示三条 边长*/ float s,area; /*area变量用来表示面积*/ scanf(“%d,%d,%d“, ,9,分析,3讲中的源程序只考虑了最理想的情况,没有对是否能够构成三角形作出判断,4讲中作了补充,那么4讲中的例程是否还有不足? 4讲中对于输入的三边,如果不能构成三角形,则程序直接输出“输入无效”后而结束。通常,我们希望程序能够这样:如果用户输入的数据无效,给出提示,可以反复输入,直到输入有效的数据。,10,改进后的源程序,#include #include main() int a,b,c; /*三个变量,用来表示三条边长*/ float s,area; /*area变量用来表示面积*/ scanf(“%d,%d,%d“, ,循环条件,循环体,11,循环结构三要素,循环变量赋初值 循环的起始,从哪里开始。 循环条件 满足什么条件时才执行循环;也即告知循环终止的条件。 循环体 要被反复执行的对象,12,While循环语句,三种基本循环语句 while(表达式) 循环体语句 执行过程:当表达式为非0值时,执行while语句中的内嵌语句。其特点是:先判断表达式,后执行语句。,e.g. i=0; while(i5) printf(“*”); i+; ,表达式可以是关系表达式、逻辑表达式等,初值,循环条件,循环体,13,dowhile循环语句, do 循环体语句 while(表达式) ; 执行过程:先执行一次指定的循环体语句,然后判别表达式,当表达式的值为非零(“真”) 时,返回重新执行循环体语句,如此反复,直到表达式的值等于0为止,此时循环结束。,e.g. i=0; do printf(“*”); i+; while(i5);,表达式可以是关系表达式、逻辑表达式等,14,例:while和dowhile的比较,#include main( ) int sum=0,i; scanf(“%d”, ,#include main( ) int sum=0,i; scanf(“%d”, ,15,分析,当第一次输入的i的值小于10时,两个程序的结果相同; 当第一次输入的i的值大于10时,结果不同; 结论:当while后面表达式的值第一次为真时,两种循环的结果相同,否则,循环的结果不同,16,for循环语句,for(表达式1;表达式2;表达式3) 循环语句 ,一般情况下,表达式1是循环变量赋初值;表达式2是循环条件;表达式3是循环变量增值; 例如:for(i=0;i10;i+) a+=1;,17,for 流程图,for循环改写成while循环形式 表达式1 while(表达式2) 语句; 表达式3; ,18,例2:编程计算,分析: 假如用sum变量来保存和,其初值为0,那么变量i从1开始,先将其累加到sum变量中,然后i自身加1,再累加到sum中,直到i=100为止,整个过程持续100次;,计算过程如下: 0+1+2+3+100,19,算法流程,循环初值,循环体,循环条件,20,/*while实现*/ #include main() int i=1,sum=0; while(i=100) sum=sum+i; i+; printf(“累加和是%dn“,sum); ,/*dowhile实现*/ #include main() int i=1,sum=0; do sum=sum+i; i+; while(i=100); printf(“累加和是%dn“,sum); ,21,/*for循环实现*/ #include main() int i,sum=0; for(i=1;i=100;i+) sum+=i; printf(“累加和是%dn“,sum); ,22,几种循环的比较,在while循环和dowhile循环中,只在while后面的括号中指定循环条件,因此为了使循环能正常地结束,循环体中应包含使循环趋于结束的语句;如i+,i=i+1等等; for循环表达式3中包含使循环趋于结束的操作; While和dowhile循环,循环变量初始化应在while和dowhile语句之前,而for循环可在表达式1中实现循环变量的初始化; for循环功能强大、灵活,不仅可以用于循环次数已知的情况,也可以用户循环次数不知而知道循环结束的情况;,23,例3 课堂练习:编程求n!,其中n从键盘输入,计算过程如下: 1*1*2*3*n,分析: 假如用sq变量来保存阶乘,其初值为1,那么变量i从1开始,先将其累乘到sq变量中,然后i自身加1,再累乘到sq中,直到i=100为止,整个过程持续n次;,24,#include main() int n,i=1,sq=1; printf(“please input the value of n:n“); scanf(“%d“, ,25,#include main() int n,i,sq=1; printf(“please input the value of n:n“); scanf(“%d“, ,#include main() int n,i=1,sq=1; printf(“please input the value of n:n“); scanf(“%d“, ,for循环使用灵活,关于for循环的其他情况说明,请具体参考课本P118的内容;,26,例4:编程打印半径为110的圆的面积。,分析 循环开始: 循环结束: 循环体:,半径r=1;,半径r=10;,求面积;,27,/*while循环实现*/ #include #define PI 3.14 main() int r=1; float s; while(r=10) s=PI*r*r; printf(“%.2f”,s); r+; ,/*for循环实现*/ #include #define PI 3.14 main() for(r=1;r=10;r+) s=PI*r*r; printf(“%.2f”,s); ,28,例5.增加条件,只输出面积不超过100的圆的面积,/*例4原程序*/ #include #define PI 3.14 main() for(r=1;r=10;r+) s=PI*r*r; printf(“%.2f”,s); ,/*例5参考程序for循环实现*/ #include #define PI 3.14 main() for(r=1;r=10;r+) s=PI*r*r; If(s=100) printf(“%.2f”,s); ,29,/*for循环实现*/ #include #define PI 3.14 main() for(r=1;r=10;r+) s=PI*r*r; If(s=100) printf(“%.2f”,s); ,/*for循环实现,加入break*/ #include #define PI 3.14 main() for(r=1;r=10;r+) s=PI*r*r; If(s=100) printf(“%.2f”,s); else break; ,结束循环,提前跳出循环; 右边程序效率高于左边,为什么?,30,例6.读程序,说出程序的功能,#inlude void main() int n; for(n=100;n=200;n+) if(n%3=0) continue; else printf(“%d ”

温馨提示

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

最新文档

评论

0/150

提交评论