第四章 程序控制语句_第1页
第四章 程序控制语句_第2页
第四章 程序控制语句_第3页
第四章 程序控制语句_第4页
第四章 程序控制语句_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

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

文档简介

1、计算中心计算中心- NEU Computer Center- NEU Computer Center焦明海焦明海() () 8368760283687602第四章第四章 程序控制语句程序控制语句20082008东北大学计算机基础教研室东北大学计算机基础教研室 3 3 目录4.1 c语句概述4.2 格式输入输出4.3 字符数据的输入输出4.4 顺序结构程序设计举例4.5 选择结构程序设计4.6 循环控制结构程序设计20082008东北大学计算机基础教研室东北大学计算机基础教研室 4 4 4.1 C语句概述 1. 控制语句控制语句( 9 9种种) : 完成一定的控制功能完成一定的控制功能 if (

2、 ) else 条件语句条件语句( 双分支选择语句双分支选择语句) switch 多分支选择语句多分支选择语句 for ( ) while ( ) 循环语句循环语句 do while ( ) continue 结束本次循环语句结束本次循环语句 break 中止语句中止语句 goto 转向语句转向语句 return 从函数返回语句从函数返回语句 2. 函数调用语句函数调用语句 : 由一个函数调用加一个分号构成由一个函数调用加一个分号构成 如如: printf(“very good!”);3. 表达式语句表达式语句 : 由表达式加分号构成由表达式加分号构成 如如: x=12 ; ( 赋值表达式语句

3、赋值表达式语句 ) 4. 空语句空语句 : 由一个分号构成由一个分号构成 , 它什么也不做它什么也不做 ; 复合语句复合语句 : 用用 括起来的语句序列括起来的语句序列 如如 int temp ; temp = x ; x = y ; y = temp ; 注意注意 : 1. 复合语句是一个整体复合语句是一个整体, 相当于一条语句相当于一条语句2. 一个复合语句中可以包含其他的复合语句一个复合语句中可以包含其他的复合语句3. 在复合语句的花括号后不要再加分号在复合语句的花括号后不要再加分号4. 复合语句中可定义变量复合语句中可定义变量 , 但此变量只在但此变量只在 该复合语句内有效该复合语句内

4、有效20082008东北大学计算机基础教研室东北大学计算机基础教研室 6 6 4.2 格式输入输出函数一、一、 printf函数函数 格式格式: printf ( 格式控制格式控制, 输出表列输出表列 ) ; 如如: printf(“a=%dn” , a) ;1. 格式控制格式控制: 用用“ ” 括起来的字符串括起来的字符串 , 包括如下两个部分包括如下两个部分 (1) 普通字符普通字符( 包括转义字符包括转义字符) : 需要原样输出的字符需要原样输出的字符 (2) 格式说明格式说明: 由由%和格式字符组成和格式字符组成 其作用是将输出数据按指定的格式输出其作用是将输出数据按指定的格式输出C语

5、言没有提供专门的输入语言没有提供专门的输入/输出语句,其输入输出操作是输出语句,其输入输出操作是由函数实现的。由函数实现的。C语言提供的函数以库的形式存在,这些库语言提供的函数以库的形式存在,这些库函数定义在头文件函数定义在头文件stdio.h中。因此在程序中如果用到输入输中。因此在程序中如果用到输入输出函数,需在程序的头部包含该头文件。出函数,需在程序的头部包含该头文件。#include#include “stdio.h” % 格式字符格式字符 l m.n 0 - - 格式字符格式字符 : 指定输出项的数据类型和输出格式指定输出项的数据类型和输出格式 c d f s 长度修正符长度修正符 :

6、 l 对长整型和对长整型和double型型 域宽及精度描述符域宽及精度描述符 m.n ( m控制域宽控制域宽, n 控制小数位数控制小数位数 ) 数数0用以在指定数字前的空位是否用用以在指定数字前的空位是否用0填补填补(对整型对整型,实型可用实型可用) 负号用以指定输出项是否为左对齐方式负号用以指定输出项是否为左对齐方式 2. 输出列表输出列表 : 输出项可以是常量输出项可以是常量, 变量变量, 表达式表达式例例: int x=8, y=- -2;float a=3.14; printf(“%dn”, 25); printf(“%03dn”, x); printf(“%3.6fn”, a);

7、printf(“%2.3sn”, “C Language”); printf(“x*y=%dn”, x*y); printf(“|y|=%dn”, fabs(y) );250083.140000C Lx*y=-16|y|=2 二、二、 scanf函数函数 格式格式: scanf ( 格式控制格式控制 , 变量地址表列变量地址表列 ) ; 1. 地址参数地址参数 : 变量的地址可通过地址运算符变量的地址可通过地址运算符“&”得到得到 例例 int x ; &x 将给出变量将给出变量x 所占内存空间的首地址所占内存空间的首地址 2. 格式控制格式控制 (1) 格式说明格式说明 % * m l 格式

8、字符格式字符 m 用以指定宽度读入数据用以指定宽度读入数据 * : 表示跳过相应位置的输入数据,不赋给对应变量表示跳过相应位置的输入数据,不赋给对应变量如如 scanf(“%d %*c%d%*c%d”,&d, &m,&y) ; 3/14/2006 3. 注意问题注意问题 (1) 格式控制中出现的除格式说明以外的其他字符格式控制中出现的除格式说明以外的其他字符, 在输入数据时要输入与其相同的字符在输入数据时要输入与其相同的字符 如如 scanf(“a=%d , b=%d”, &a , &b) ; 输入输入: a=12 , b=45 (3) 输入数值数据时,遇到以下情况时输入结束输入数值数据时,遇

9、到以下情况时输入结束 遇到空格遇到空格, 或按或按“回车回车”键键, “跳格跳格”键键 按指定的宽度结束按指定的宽度结束 如如 scanf(“%d%3d%2d”, &x , &y , &z) ; 输入输入: 25 1867490 x 为为 25 , y 为为 186 , z 为为 74 遇到非法输入遇到非法输入 如如scanf(“%d%d”, &x , &y ) ; 输入输入: 25 , 3 x 为为 25 , y 无正确数据无正确数据( 因遇到逗号而出错因遇到逗号而出错)(2) 用用%c输入字符时输入字符时, 空格和转义字符都会作为有效字符输入空格和转义字符都会作为有效字符输入 如如 sca

10、nf(“%c%c”, &ch1, &ch2) ; 输入输入 : A B 则则ch 1为字符为字符A , ch2为空格为空格 20082008东北大学计算机基础教研室东北大学计算机基础教研室 1010 4.3 字符数据的输入和输出 一、一、 字符输出函数字符输出函数( putchar函数函数) 格式格式 : putchar(参数参数) 功能功能: 将参数对应的字符输出到显示器上将参数对应的字符输出到显示器上, 参数可以是字符型或整型的常量和参数可以是字符型或整型的常量和 变量变量例例: #include void main( ) char a=B, b, c; b=O; putchar(a);

11、putchar(b); putchar(Y); 输出输出: BOY: BOY注意注意: putchar: putchar函数只有一个参数函数只有一个参数二、二、 字符输入函数(字符输入函数( getchar函数)函数) 格式格式 : getchar( ) ( 注意它是无参函数注意它是无参函数 ) 功能功能 : 从键盘输入一个字符从键盘输入一个字符例例:#include void main( ) char ch; ch=getchar( ); getchar( ); putchar(ch); putchar(n); putchar(getchar( ) ; 假设输入假设输入: ABCD: ABC

12、D输出输出: : A A C C注意注意: :一般连续输入可显示字符一般连续输入可显示字符, , 若中间有空格若中间有空格, ,回车等字符回车等字符, , 在输出时是不可见的在输出时是不可见的若输入若输入: A BC: A BC若输入若输入: AB: AB输出输出: : A A B B输出输出: : A A 20082008东北大学计算机基础教研室东北大学计算机基础教研室 1212 4.4 顺序结构程序设计举例例例: :输入三角形输入三角形3 3边长边长, ,求其面积求其面积公式公式 area=s(s-a)(s-b)(s-c) s=(a+b+c)/2 #include void main( )

13、 float a,b,c,s,area; scanf(“%f%f%f”,&a,&b,&c); s=(a+b+c)/2.0; area=sqrt(s*(s-a)*(s-b)*(s-c); printf(“area=%fn”,area);输入输入a,b,c 3a,b,c 3边长边长按公式计算按公式计算s s的值的值按公式计算按公式计算areaarea的值的值输出输出areaarea的值的值20082008东北大学计算机基础教研室东北大学计算机基础教研室 1313 4.5 选择结构程序设计1.关系运算符和关系表达式2.逻辑运算符和逻辑表达式3.if语句4.switch语句5.程序举例20082008

14、东北大学计算机基础教研室东北大学计算机基础教研室 1414 1.关系运算符和关系表达式 注意注意 : (1) 字符数据按其字符数据按其ASCII码值进行比较码值进行比较 (2) 应避免应避免2个实数作个实数作 = = 或或 != 的比较的比较 一、关系运算符一、关系运算符 = 278 是允许的是允许的 , 它相当于它相当于 (52)7)8 (4) 可以将关系表达式看成是一种整型表达式可以将关系表达式看成是一种整型表达式20082008东北大学计算机基础教研室东北大学计算机基础教研室 1515 2.逻辑运算符和逻辑表达式 一、一、 逻辑运算符逻辑运算符 ! & | 1. 3个运算符的优先级由高到

15、低为个运算符的优先级由高到低为 ! & | 2. ! 的优先级高于关系运算的优先级高于关系运算, &和和 | 的优先级的优先级 低于关系运算低于关系运算 3. ! 是右结合性是右结合性, & 和和 | 是左结合性是左结合性 , 85&!2二、逻辑表达式二、逻辑表达式1.1.逻辑表达式的值应该是逻辑表达式的值应该是“逻辑真逻辑真”或或“逻辑假逻辑假”, 逻辑运算的结果以数值逻辑运算的结果以数值1代表代表“真真”, 以数值以数值0代表代表“假假”; 进行判断时进行判断时, 非零值代表非零值代表“真真”, 零值代表零值代表“假假”例例: : 表示表示 x -1,1x -1,1区间区间 应写为应写为:

16、 x=-1 & x=-1 & x=12.2.逻辑运算中的规律逻辑运算中的规律 (1) 在在& 表达式中表达式中, 若左端为若左端为0, 则不必再计算右端则不必再计算右端, 表达式值为表达式值为0 即即: 0 & a = 0 (2) 类似有类似有 1 | a = 1 规律规律:0|a =a 0&a=01|a=1 1&a=aa|a=a a&a=aa|!a=1 a&!a=0!(a|b)=!a&!b !(a&b)=!a|!b 例例 #include void main( ) int x, y, z ; x = y = z = 0 ; +x | +y & +z ; printf(“%d ,%d ,%dn

17、”, x,y,z); x = y = z = -1 ; +x & +y | +z ; printf(“%d ,%d ,%dn”, x,y,z); (+x) | ( (+y)&(+z) )输出结果输出结果:1 , 0 , 00 , - -1 , 0(+x) & (+y) | (+z) 20082008东北大学计算机基础教研室东北大学计算机基础教研室 1818 3.if语句 一、一、if 语句的两种形式语句的两种形式 1. 单分支形式单分支形式: if ( 表达式表达式 ) 语句语句 2. 双分支形式双分支形式: if ( 表达式表达式 ) 语句语句1 else 语句语句2 执行过程执行过程: :

18、 先计算表达式先计算表达式的值的值, 如果值为如果值为1, 就执行其后的就执行其后的 语句语句, 如果值为如果值为0, 就继续向下执行就继续向下执行.执行过程执行过程: : 先计算表达式的值先计算表达式的值, 如果值为如果值为1, 就执行其后的就执行其后的 语句语句1, 如果值为如果值为0, 就执行就执行else后的语句后的语句2说明说明: 1. 语句可以是简单语句或复合语句语句可以是简单语句或复合语句 2. 表达式一般为逻辑或关系表达式表达式一般为逻辑或关系表达式, 且应用且应用( )括起来括起来 语句语句1 语句语句2成立成立不成立不成立P语句语句成立成立P20082008东北大学计算机基

19、础教研室东北大学计算机基础教研室 1919 #include #include void main( ) int x, y; scanf(“%d”, &x); if (x0) y=pow(x, 3)+x+1; printf(“y=%dn”, y); 例例: :编程求解函数编程求解函数 Y= 0 X=0Y= 0 X0+X+1 X0 #include #include void main( ) int x, y; scanf(“%d”, &x); if (xb?abac?bc?acbc输出输出a , b, c是是是是是是否否否否否否#include void main( ) int a,b,c,t

20、; scanf(“%d%d%d”,&a,&b,&c); if (ab) t=a; a=b; b=t; if (ac) t=a; a=c; c=t; if (bc) t=b; b=c; c=t; printf(“%d,%d,%dn”, a, b, c);二、二、 if 语句的嵌套语句的嵌套 : 在在if 语句中又包括一个或多个语句中又包括一个或多个if 语句语句规定规定: 在在if 嵌套结构中嵌套结构中, else是与其前面最近的尚未配对的是与其前面最近的尚未配对的if 配对配对1. if (表达式表达式1) if (表达式表达式2) 语句语句4. if (表达式表达式1) if (表达式表达式

21、2) 语句语句1 else 语句语句22. if (表达式表达式1) 语句语句1 else if (表达式表达式2) 语句语句23. if (表达式件表达式件1) 语句语句1 else if (表达式表达式2) 语句语句2 else 语句语句3对第对第4 4种形式可以有两种理解方式种形式可以有两种理解方式: :(1) if (表达式表达式1) if (表达式表达式2) 语句语句1 else 语句语句2 (2) if (表达式表达式1) if (表达式表达式2) 语句语句1 else 语句语句2 20082008东北大学计算机基础教研室东北大学计算机基础教研室 2222 例例: 编程求解函数编程

22、求解函数 y = y = - -1 x0方法方法1if (x=0) if (x0) y=1; else y=0;else y=- -1;y=- -1y=0y=1x=0 x0真真假假真真假假方法方法3y=- -1;if(x!=0) if(x0) y=1; else y=0; y = y = - -1 x=00 x0y=- -1x!=0 x0y=1y=0真真真真假假假假修改方法修改方法3y=- -1;if(x!=0) if(x0) y=1; else y=0; y=- -1x!=0 x0y=1y=0真真真真假假假假 三、三、 条件运算条件运算 例例 max=ab? a : b+1 ab? a :

23、cd? c : d 注意注意: (1) 表达式表达式1, 表达式表达式2和表达式和表达式3 的数据类型可以互不相同的数据类型可以互不相同 (2) 条件表达式的值的数据类型与表达式条件表达式的值的数据类型与表达式2, 表达式表达式 3中数中数 据类型较高的那个保持一致据类型较高的那个保持一致 如如 75? 10 : 1.4 条件表达式的值为条件表达式的值为10.0 ab? a : (cd? c : d )1. 条件运算符条件运算符 ? : 优先级仅高于赋值类优先级仅高于赋值类, 是右结合性是右结合性 执行过程执行过程: 先计算表达式先计算表达式1 , 若其值为非零值若其值为非零值(真真), 则计

24、算表达式则计算表达式2 的值的值, 该条件表达式的值即为表达式该条件表达式的值即为表达式2 的值的值; 若表达式若表达式1的值为零的值为零(假假), 则计算表达式则计算表达式3 的值的值, 该条件表达式的值即为表达式该条件表达式的值即为表达式3 的值的值2. 条件表达式的一般形式条件表达式的一般形式 : 表达式表达式1? 表达式表达式2 : 表达式表达式3 max=(ab? a : b+1)用条件表达式实现用条件表达式实现 #include void main( ) int max; max=xy? x : y ; max=zmax? z : max; printf(“max=%d”,max)

25、; 当当ifif中的语句为简单赋值语句时中的语句为简单赋值语句时, ,我们可以用条件表达式我们可以用条件表达式来取代来取代if if 语句语句例例 求求3 3个数中的最大数个数中的最大数#includevoid main( ) int max; if (xy) max=x; else max=y; if (zmax) max=z; printf(“max=%d”,max);20082008东北大学计算机基础教研室东北大学计算机基础教研室 2626 4.switch语句 一、一、switch语句的格式语句的格式 switch ( 表达式表达式 ) case 常量表达式常量表达式1 : 语句语句1

26、 case 常量表达式常量表达式2 : 语句语句2 : : : case 常量表达式常量表达式n : 语句语句n default : 语句语句n+1 注意注意: 1. 表达式一般多为整型或字符型表达式表达式一般多为整型或字符型表达式 2. case后常量表达式的值必须互不相同后常量表达式的值必须互不相同 3. case和和default的出现次序不影响结果的出现次序不影响结果 4. 语句语句1至语句至语句n+1为复合语句时可省略为复合语句时可省略 多个多个case可以共用一组执行语句可以共用一组执行语句 Switch语句可以嵌套语句可以嵌套 switch语句的执行过程语句的执行过程 : 计算计

27、算switch后表达式的值后表达式的值 如果表达式的值与某个如果表达式的值与某个case常量表达式的值相等时常量表达式的值相等时, 就执行此就执行此case后的语句后的语句, 执行完后将继续执行下一个执行完后将继续执行下一个case后的语句后的语句, 如果表达式的值与所有如果表达式的值与所有case常量表达式的值都不同常量表达式的值都不同, 就执行就执行default后的语句后的语句 例例 void main ( ) int x, y ; printf(“input a number:n”); scanf(“%d” , &x) ; switch (x) case 1 : y=10 ; prin

28、tf(“%dn” , y) ; case 2 : y=20 ; printf(“%dn” , y) ; case 3 : y=30 ; printf(“%dn” , y) ; default : y=0 ; printf(“%dn” , y) ; 如果输入如果输入x为为 2则输出则输出: 20 30 0如果输入如果输入x为为 6则输出则输出: 020082008东北大学计算机基础教研室东北大学计算机基础教研室 2828 注意注意 : 在执行一个在执行一个case 分支后分支后, 应用应用break语句结束语句结束switch语句语句 void main ( ) int x, y ; print

29、f(“input a number:n”); scanf(“%d” , &x) ; switch (x) case 1 : y=10 ; printf(“%dn” , y) ; break; case 2 : y=20 ; printf(“%dn” , y) ; break; case 3 : y=30 ; printf(“%dn” , y) ; break; default : y=0 ; printf(“%dn” , y) ; 如果输入如果输入x为为 2则输出则输出: 20 20082008东北大学计算机基础教研室东北大学计算机基础教研室 2929 4.6 循环控制1.概述2. while

30、语句3. do-while语句4. for语句5. 循环的嵌套6. break语句和continue语句20082008东北大学计算机基础教研室东北大学计算机基础教研室 3030 1.概述在实际问题中在实际问题中, 我们常常遇到需要重复处理的工作我们常常遇到需要重复处理的工作例如例如: 求求1100的和的和 , 或求一个班英语成绩的平均分或求一个班英语成绩的平均分一般来说循环控制方法分两种一般来说循环控制方法分两种:(1) 条件循环条件循环 ( while循环循环 和和 do while 循环循环 ) 条件满足时执行循环条件满足时执行循环, 条件不满足时结束循环条件不满足时结束循环(2) 计数

31、循环计数循环 ( for 循环循环 ) 先确定循环次数先确定循环次数, 然后执行循环然后执行循环, 完成循环次数后结束完成循环次数后结束注注: C语言中的语言中的for循环非常灵活循环非常灵活, 功能强大功能强大, 也可以实现也可以实现 循环次数不确定的情况循环次数不确定的情况, 完全可以代替完全可以代替while循环循环20082008东北大学计算机基础教研室东北大学计算机基础教研室 3131 2.while语句2. 执行过程执行过程 : 先计算表达式的值先计算表达式的值, 值为真值为真(非零非零)时执行循环体时执行循环体, 值为假时结束循环值为假时结束循环 1. 格式格式 : while

32、(表达式表达式) 循环体语句循环体语句3. 注意注意 :(1) 表达式必须用表达式必须用( ) 括起来括起来(2) 循环体语句为复合语句时循环体语句为复合语句时, 必须用必须用 把它们括起来把它们括起来(3) 循环体语句中必须有使循环趋向结束的语句循环体语句中必须有使循环趋向结束的语句 A当当P成立成立AP成立成立不成立不成立例例: 求求1100 的和的和#include void main ( ) int i , sum; sum=0; i=1; while (i=100) sum=sum+i; i+; printf(“sum=%dn”, sum);分析分析: 输入输入, 输出分别是什么输出

33、分别是什么? 需要几个变量需要几个变量? 程序大体可分为几个步骤程序大体可分为几个步骤?sum=0i=1i=100 ?sum=sum+ii=i+1输出输出sum的值的值例例: 求求1n 的和的和, n为任意正整数为任意正整数sum=0i=1i=n ?sum=sum+ii=i+1输出输出sum的值的值输入输入n #include void main ( ) int i , sum , n ; sum=0; i=1; printf(“Input value n:n”); scanf(“%d”, &n); while (i=n) sum=sum+i; i+; printf(“sum=%dn”, su

34、m);例例: 求某个班英语成绩的平均分求某个班英语成绩的平均分, 该班学生人数和每个该班学生人数和每个 学生的成绩由键盘输入学生的成绩由键盘输入sum=0i=1i=n ?sum=sum+si=i+1输出输出ave的值的值输入输入n (n表示学生人数表示学生人数)输入输入s (s表示成绩表示成绩)ave=sum/n #include void main ( ) int i , n ; float s , sum , ave ; sum=0; i=1; printf(“Input the student number: ”); scanf(“%d”, &n); while (i=n) scanf(

35、“%f”, &s); sum=sum+s ; i+ ; ave=sum/n ; printf(“ave=%2fn”, ave);例例: 编程求编程求 的近似值的近似值, 公式公式 /4 1- -1/3+1/5- -1/7+1/9- -分析分析:题目仍可以看成是累加求和题目仍可以看成是累加求和不同的是不同的是, 相加的每一项正负相间相加的每一项正负相间, 公式是无穷的公式是无穷的, 所以我们规定当所以我们规定当相加项的绝对值小于相加项的绝对值小于0.000001(即即106 )时停止计算时停止计算#include #include void main( ) int s; float n , t

36、, pi ; s=1 ; n=1; t=1; pi=0; while ( fabs(t)1e-6 ) pi=pi+t ; n=n+2; s=- -s; t=s/n; pi=4*pi ; printf(“ pi=%10.6fn”, pi );tpins11- -13- -1/310 10.671/55120082008东北大学计算机基础教研室东北大学计算机基础教研室 3636 3.do-while语句不成立不成立AP成立成立 当当P成立成立 A 1. 格式格式 : do 循环体语句循环体语句 while (表达式表达式) ;2. 执行过程执行过程 : 先执行循环体先执行循环体, 然后计算表达式的

37、值然后计算表达式的值, 若值为真则重复执行循环体若值为真则重复执行循环体, 若值为假则结束循环若值为假则结束循环3. 注意注意 :(1) 表达式必须用表达式必须用( ) 括起来括起来(2) 循环体语句为多条语句时循环体语句为多条语句时, 必须用必须用 把它们括起来把它们括起来(3) 循环体语句中必须有使循环趋向结束的语句循环体语句中必须有使循环趋向结束的语句 20082008东北大学计算机基础教研室东北大学计算机基础教研室 3737 例例: 求求1100 的和的和#include void main ( ) int i , sum; sum=0; i=1; do sum=sum+i; i+;

38、while (i=100) ; printf(“sum=%dn”, sum);sum=0i=1i=100 ?sum=sum+ii=i+1输出输出sum的值的值4. while循环和循环和do-while循环的比较循环的比较 while do-whilewhile do-while(1)(1)先判断条件再执行循环体先判断条件再执行循环体 先执行循环体再判断条件先执行循环体再判断条件(2)(2)循环体可能一次也不执行循环体可能一次也不执行 至少执行一次循环体至少执行一次循环体#include void mian( ) int sum=0 , i ; scanf(“%d”, &i ); while

39、(i=10) sum=sum+i ; i+ ; printf(”%dn”,sum);#include void mian( ) int sum=0 , i ; scanf(“%d”, &i ); do sum=sum+i ; i+ ; while (i=10) ; printf(”%dn”,sum);20082008东北大学计算机基础教研室东北大学计算机基础教研室 3939 4.for语句1. 格式格式 : for (表达式表达式1 ; 表达式表达式2 ; 表达式表达式3) 循环体语句循环体语句2. 执行过程执行过程: (1) 计算表达式计算表达式1 (2) 计算表达式计算表达式2, 若值为真

40、则执行循环体若值为真则执行循环体, 再执行第再执行第(3)步步; 若值为假则结束循环若值为假则结束循环 (3) 计算表达式计算表达式3, 再重复执行第再重复执行第(2)步步sum=0; i=1;while ( i=100 ) sum=sum+i ; i+ ; sum=0;for( i=1 ; i=100 ; i+) sum=sum+i ;例例 : 将将1100求和的求和的while循环转换为用循环转换为用for循环实现循环实现3. 说明说明(1) 可以省略表达式可以省略表达式1 sum = 0 ; for ( i=1 ; i=100 ; i+ ) sum = sum+i ; i=1;(2) 可

41、以省略表达式可以省略表达式3 sum = 0 ; for ( i=1 ; i=100 ; i+ ) sum = sum+i ; i+ ;(3) 同时省略表达式同时省略表达式1和表达式和表达式3 sum = 0 ; i=1 ; for ( ; i=100 ; ) sum = sum+i ; i+ ; (4) 表达式表达式1 , 表达式表达式3还可以是逗号表达式还可以是逗号表达式 for ( sum = 0 , i = 1 ; i=100 ; sum = sum+i , i+ ) ;(5) 表达式表达式1 , 表达式表达式3 可以是与循环控制无关的其他表达式可以是与循环控制无关的其他表达式 i=1

42、 ; for( sum=0 ; i=100 ; sum=sum+i ) i+ ; 空语句空语句(6) 表达式表达式2一般不会省略一般不会省略, 若省略表达式若省略表达式2循环将不能停止循环将不能停止sum = 0 ; for ( i=1 ; ; i+ ) sum = sum+i ; sum = 0 ; i=1;for ( ; ; ) sum = sum+i ; i+ ; i=1;while(1) sum=sum+i ; i+; 20082008东北大学计算机基础教研室东北大学计算机基础教研室 4242 例例: 求某个班英语成绩的平均分求某个班英语成绩的平均分#include void main

43、 ( ) int i , n ; float s , sum , ave ; sum=0; i=1; scanf(“%d”, &n); while ( i=n ) scanf(“%d”, &s); sum=sum+s ; i+ ; ave=sum/n ; printf(“%2fn”, ave);#include void main ( ) int i , n ; float s , sum , ave ; sum=0; scanf(“%d”, &n); for ( i=1; i=n ; i+ ) scanf(“%d”, &s); sum=sum+s ; ave=sum/n ; printf(“

44、%2fn”, ave);例例: 求求Fibonacci数列的前数列的前20 个数个数 Fibonacci数列数列: 1 , 1 , 2 , 3 , 5 , 8 , 13 #include void main( ) int i , f1 , f2 , f3; f1=1; f2=1; printf(“%8d%8d”, f1 , f2); for ( i=3 ; i=20 ; i+ ) f3=f1+f2; f1=f2; f2=f3; printf(“%8d”, f3); if ( i%4=0) putchar(n); 分析数列的规律分析数列的规律: 从第从第3个数开始个数开始, 每个数是每个数是其前两个数之和其前两个数之和f1f2f3112231 235+20082008东北大学计算机基础教研室东北大学计算机基础教研室 4444 5.循环的嵌套1. 循环的嵌套循环的嵌套: 一个循环体内包含另一个完整的循环结构一个循环

温馨提示

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

评论

0/150

提交评论