第4章 循语句和转移语句.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章 循环语句和转移语句 4.1 循环的概念 4.2 for循环 4.3 while循环 4.4 do-while循环 4.5 break语句 4.6 continue语句 4.7 多重循环 4.8 goto语句 小结 4.1循环的概念 循环:就是有规律地重复执行某些语句的过程。例如:要计算0到360度的正弦函数,要求每隔0.1度计算一次,如果没有循环结构,则:……..x=0.0;y=sin(x);printf(“y=%f”,y);x=0.1;y=sin(x*3.14159/180.0);printf(“y=%f”,y);…… 对于如此简单的问题,需要10000多条语句。 循环结构来处理重复计算的问题。 对于上述问题可以用以下程序: …… for(i=0;i=3600;i++) {x=i*3.14159/180.00;y=sin(x);printf(“y=%f”,y); } …… 显然,这段程序简洁易懂。 4.2 for循环 for语句的一般格式为: for(表达式1;表达式2;表达式3)语句 表达式1用于循环赋初始值,它只能执行一次; 表达式2是循环条件; 表达式3用于对循环条件的修改,以使循环能于结束。 执行过程: 例如:求从1加到100的程序。 对for语句作几点说明: (1)可以将表达式1放到for语句之前,在for语句内缺省表达式1。 例如:…s=0,i=1;for(; i=100; i++)s=s+i; 对for语句作几点说明(续) (2)表达式2如果缺省(分号不能缺省),相当于表达式2永远为非0(“真”),从而循环无终止地进行下去。 例如:s=0;for(i=1; ;i++)s=s+i; 对for语句作几点说明(续): (3)可以把表达式3改为表达式语句移到循环体的尾部,作为循环体的一部分。 例如:s=0;for(i=1;i=100;){s=s+i;i++;} 对for语句作几点说明(续): (4)可以把与循环控制变量无关的循环初始化操作放入表达式1中,也可以把循 环体中与循环变量无关的操作放到表达式3中。 例如:for(s=0,i=1;i=100;i++)s=s+i;其中,″s=0,i=1″是逗号表达式。 对for语句作几点说明(续): (5)如果循环体中没有任何语句,则应该加一个分号。 例如:s=0;for(i=1; i=100; s=s+i, i++) ; for语句---范例 for语句---范例 例1 利用公式计算 ex=1+x/1!+x2/2!+x3/3!+……+xn/n! 对于求级数的和,常用两类方法: 1)通项公式法 t0=1 ti=xi/i!(i=1,2,…….n) 2)递推公式法 t0=1 ti= ti-1 .x/i (i=1,2,……n) 对于本题使用递推公式法计算量要小。 程序如下: #include stdio.h void main(){int i,n;double t,x,ex;ex=1.0;t=1.0;printf(“Enter value of n,x:”);scanf(“%d%lf”,n,x);for (i=1;in;i++){t*=x/i;ex+=t;}printf(“exp(%f)=%lf\n”,x,ex); } 例2 求Fibonacci数列1,1,2,3,5,8的前30个数 F1=1F2=1 Fn=Fn-1+Fn-2 2=1+13=1+2 5=2+38=3+5 在一次循环中计算两项,递推公式为: F1=1F2=1 (初值) F1=F1+F2 F2=F2+F1 #include stdio.h void main( ){long int f1, f2;int i, n;printf (“ Input n:”);scanf (“ %d”, n);f1=f2=1;for (i=1;i=n;i++){printf(“%ld\t%ld\n”,f1,f2);f1=f1+f2;f2=f2+f1; }} 例3 求10个大于0小于100的数中的最大数和最小数 置初值的方法一般有两种: 1)极值法:取有界数据的上界作为最小值的初值,取有界数据的下界作为最大的初值 2)成员法:取一批数据的第一个数作为最大值和最小值的初值。 本程序采用极值法 #include stdio.h void main( ){int a, i, max, min;max=0; min=100;for (i=1;i=10;i++){scanf(“%d”, a);if (maxa) max=a;if (mina) min=a;}printf(“Max=%d,Min=%d\n”

文档评论(0)

mv2323 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档