[财务管理]5循环控制

上传人:tia****nde 文档编号:70747032 上传时间:2019-01-18 格式:PPT 页数:33 大小:368.09KB
返回 下载 相关 举报
[财务管理]5循环控制_第1页
第1页 / 共33页
[财务管理]5循环控制_第2页
第2页 / 共33页
[财务管理]5循环控制_第3页
第3页 / 共33页
[财务管理]5循环控制_第4页
第4页 / 共33页
[财务管理]5循环控制_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《[财务管理]5循环控制》由会员分享,可在线阅读,更多相关《[财务管理]5循环控制(33页珍藏版)》请在金锄头文库上搜索。

1、循环控制,5.1 for语句 (1)书写格式 for(表达式1;表达式2;表达式3) 循环体语句; 注意:1)表达式1用来给变量赋值,只执行一次 2)各表达式之间用;隔开 3)表达式可部分或全部省略,但分号不能省 4)循环体语句如果有多条语句应为复合语句,(2)执行规则 1)计算表达式1; 2)计算表达式2,若值非零转3), 否则转5); 3)执行循环体语句; 4)计算表达式3,转2); 5)执行循环体后的语句;,具体流程图如下:,应用: Sum=1+2+3+100;,main( ) int i,sum; for(i=1,sum=0;i=100;i+) sum+=i; printf(“sum=

2、%dn”,sum); ,5.2 while语句 (1)书写格式 while(表达式) 循环体语句; (2)执行规则 1)计算表达式的值,当值非0时,执 行步骤2),否则,执行步骤4); 2)执行循环体语句; 3)转去执行步骤1); 4)退出循环;,注意:循环体语句中一定要有使循环趋向结束的操作;如果第一次进入循环时表达式值为0,循环一次也不执行;,流程图如下:,应用:Sum=1+2+3+100;,main( ) int i,sum; i=1; sum=0; while(i=100) sum+=i; i+; printf(“sum=%dn”,sum); ,5.3 dowhile语句 (1)书写格

3、式 do 循环体语句; while(表达式); (2)执行规则 1)执行do后的循环体语句; 2)计算while后表达式的值,当非0转去 1),否则转去3) 3)退出;,注意:while后一定要有分号; 循环体语句如果有多条要用复合语句,流程图如下:,应用:Sum=1+2+3+100;,main( ) int i=1,sum=0; do sum+=i; i+; while(i=100); printf(“sum=%dn”,sum); ,5.4循环嵌套 对于同一问题既可以用for循环来解决也可以用while、dowhile来解决,我们可以将这三种结构互相包含在一起,这便构成循环嵌套 任何一种类型

4、的循环可以做另一种循环的循环体 循环可以有多层,但每一层都必须是完整的,1、输出以下内容,要求使用两种方法,第一种方法采用单层循环,第二种方法采用双层循环。 123 456 789,方法一: 分析:单层循环的思路是:从输出到,并且,每当输出三个数字时,多输出一个换行符。 方法二: 分析:双层循环的思路是:输出三行,每行输出三个数字。,2请用程序输出以下内容: 1 12 123 1234 12345 123456 1234567 12345678 123456789,分析:外层循环用于控制输出9行;内层循环用于输出每行的数字。每一行都是从1开始,但第一行输出1个数字,第二行输出2个,第三行输出3

5、个,3请输出以下九九口诀表: 1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 1*4=4 2*4=8 3*4=12 4*4=16 1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=24 7*8=56 8*8=64 1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=36 7*9=

6、63 8*9=72 9*9=81,比如:打印9x9乘法表,#include main() int i,j; for(i=1;i10;i+) printf(“%4d“,i); printf(“n-n“); for(i=1;i10;i+) for(j=1;j10;j+) printf(j=9)?“d*%d=%4dn“: “%d*%d=%4d“,i,j,i*j); ,比如:打印如下图形 * * *,main( ) int i,j; for(i=0;i=2;i+) for(j=0;j=3;j+) printf(“*”); printf(“n”); ,5.5 break和continue语句 (1)br

7、eak语句 1)功能:用于退出switch语句体和循环语句体,继续执行switch或循环体后面的语句。 )说明:只能用于跳出循环体语句和switch语句。,main( ) int i=0,j=10,k=2,s=0; for(;) i+=k; if(ij) printf(“%dn”,s); break; s+=i; ,(2)continue语句 1)功能:终止执行本次循环体中尚未执行的语句,跳到循环控制条件的测试部分,然后由循环条件决定循环是否执行。 2)注意:只能循环体语句不能用于switch语句。,比如:main( ) int a,b; for(a=1,b=1;a=20) break; if

8、(b%3=1) b+=3; continue; b=-5; printf(“%dn”,a); ,5.6 程序举例 (1)一个球从100米高度自由落下,每次落地后反跳回原高度的一半,后再落下,求它在第10次落地时: 1)向下运动共经多少米? 2)第10次反弹多高? 3)全程共经多少米? n 循环次数 s1 向下运动共经总米数 h 高度 s2 第10次落地时共经过的米数,n每次加1 s1=s1+h h=h/2,main( ) float h=100,s1=0,s2=0; int n; for(n=0;n=10;n+) s1=s1+h; h=h/2; s2=2*s1-100; printf(“s1=

9、%fns2=%fnh=%fn”, s1,s2,h); ,(2)用/4=1-1/3+1/5-1/7+1/9-公式求的近似值,直到最后一项的绝对值小于10-4为止,思路:pi代表和 t代表每一项 s为分子 n为分母 每一项的分子为前一项的分子乘以-1,分母为前一项分母加2,#include main( ) int s=1.0;float n=1.0,t=1.0,pi=0; while(fabs(t)=1e-4) pi+=t; n+=2; s=-s; t=s/n; pi*=4; printf(“pi=%fn”,pi);,(3)用40元买苹果、梨和西瓜,各品种都要,总数为100,已知苹果0.4元一个,

10、梨0.2元一个,西瓜4.0元一个。问可以各买多少个,输出所有可能方案,思路:1)假设买x个西瓜,y个苹果,z个梨,则 x+y+z=100 40x+4y+2z=400 2)所有满足以上两个方程的x、y、z都符合题意,所以可以逐一变化其值,一次次的试,只要满足以上原则就是所要之一,由于每种水果至少有一个,且x、y、z都为正整数, 故x的变化范围:19 y 189 如果确定了x、y的值,z便有唯一的值,main( ) int x,y,z; for(x=1;x=9;x+) for(y=1;y=89;y+) z=100-x-y; if(40*x+4*y+2*z)=400) printf(“x=%d,y=

11、%d,z=%dn”, x,y,z); ,(4)求素数问题(2100之间) 思路:1)判素数。用2,3,4,sqrt(i)逐个去除i,只要能被其中某一个整除,i就不是素数,否则若不能被任一个除尽,i就是素数 2)设置yes作为判断循环是否结束的条件之一初值yes为1,若i被其中一数整除,说明不是素数,将yes置0,退出循环 3)i为所要判断的数其范围2100,故从2开始依次判断其是否为素数,#include int n=0,i,j,yes,a; for(i=2;i=100;i+) yes=1;j=2; a=(int)sqrt(double)i); while(yes ,(5)打印图形 * * * *,行号 空格数 *号数 i j k 0 3 1 1 2 3 2 1 5 3 0 7,main( ) int i,j,k; for(i=0;i=3;i+) for(j=1;j=3-i;j+) printf(“ ”); for(k=1;k=2*i+1;k+) printf(“*”); printf(“n”); ,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号