《五章循环控制ppt课件》由会员分享,可在线阅读,更多相关《五章循环控制ppt课件(38页珍藏版)》请在金锄头文库上搜索。
1、C语语言言程程序序设设计计第第五五章章四川理工学院四川理工学院四川理工学院四川理工学院 第五章第五章 循环控制循环控制概述概述goto语句以及用语句以及用goto语句构成循环语句构成循环 while 语句语句do while 语句语句for 语句语句循环嵌套循环嵌套几种循环的比较几种循环的比较break 与与continue语句语句程序举例程序举例祁抽抡访灼除持况苫畸铭湾清袭秩吊领追胖捍丰砧狮舔方障嵌刨趁锋韦勒五章循环控制ppt课件五章循环控制ppt课件C语语言言程程序序设设计计第第五五章章四川理工学院四川理工学院四川理工学院四川理工学院第五章第五章 循环控制循环控制本章要点本章要点:建立循环
2、程序设计的基本概念和逻辑思维建立循环程序设计的基本概念和逻辑思维 掌握掌握C语言循环程序设计的方法语言循环程序设计的方法槐萍钱喀报雾包惭蚌洲论汲耗动啃廉荒挛纳互贼卵洛谦歼万茶尺衣暗状搜五章循环控制ppt课件五章循环控制ppt课件C语语言言程程序序设设计计第第五五章章四川理工学院四川理工学院四川理工学院四川理工学院 第五章第五章 循环控制循环控制5.1 5.1 概述概述1.1.引入循环控制语句的作用引入循环控制语句的作用 当满足一定条件时当满足一定条件时, ,重复执行一段程序。重复执行一段程序。2.2.设置循环需要考虑的问题设置循环需要考虑的问题 循环初值;循环条件的设置;循环体应包括的循环初值
3、;循环条件的设置;循环体应包括的语句;循环条件的修改。语句;循环条件的修改。3.C3.C语言中可用以下语句实现循环语言中可用以下语句实现循环 循环结构主要有:循环结构主要有:(1 1)用)用gotogoto语句和语句和ifif语句构成循环;语句构成循环;(2 2)用)用whilewhile语句;语句;(3 3)用)用do-whiledo-while语句;语句;(4 4)用)用forfor语句。语句。邵泡淖自慎拓峨驮膝忆沃惭混缺困层耕绎幅儒石汞毙魔韧励菌通泞俱诸墩五章循环控制ppt课件五章循环控制ppt课件C语语言言程程序序设设计计第第五五章章四川理工学院四川理工学院四川理工学院四川理工学院用用
4、if语句和语句和goto语句构成循环,语句构成循环, 第五章第五章 循环控制循环控制5.2 goto5.2 goto语句以及用语句以及用gotogoto语句构成循环语句构成循环 一般形式:一般形式: goto goto 标号;标号; 标号:语句标号:语句其中:其中:标号用标识符表示,即由字母、数字和下划线标号用标识符表示,即由字母、数字和下划线组成,且首字符必须为字母或下划线。组成,且首字符必须为字母或下划线。注意:注意:不能用整数来作标号。不能用整数来作标号。用途:用途:1.1.与与ifif语句一起构成循环结构。语句一起构成循环结构。 2. 2.从循环体中跳到循环体外从循环体中跳到循环体外(
5、 (常指最深层)。常指最深层)。 3. 3.改变程序自上而下的执行顺序。改变程序自上而下的执行顺序。缺点:缺点:滥用滥用goto语句,可使程序无规律、可读性差。语句,可使程序无规律、可读性差。例例5.1 用用if语句和语句和goto语句构成循环,语句构成循环, main( ) int i,sum=0; i=1; loop: if(i=100) sum=sum+i; i+; goto loop; printf(“%d”,sum); 用用if语句和语句和goto语句构成循环,语句构成循环, main( ) int i,sum=0; i=1; loop: if(i=100) sum=sum+i; i
6、+; goto loop; printf(“%d”,sum);例例 5.1 示例示例示例示例尧砍睁抉镰壁谨藐挥气森礁鸽槐酋勿纵虎淳碘凑梅原哇胖廊憾凿爽赚杀挥五章循环控制ppt课件五章循环控制ppt课件C语语言言程程序序设设计计第第五五章章四川理工学院四川理工学院四川理工学院四川理工学院例例 5.2 用用while 循环循环求求sum=1+2+ +100 。第五章第五章 循环控制循环控制5.3 while 语句语句一般格式一般格式: while (表达式表达式) 语句语句 特点特点: 先判断,后执行。先判断,后执行。 表达式为表达式为非非 0 值时,执行语句,反之则不执行。值时,执行语句,反之则
7、不执行。 属属 “当型当型” 循环结构。循环结构。当当P P为真为真 A表达式语句语句非非0 00NS 流图流图 传统流程图传统流程图 例例 5.2 main ( ) int i , sum = 0 ; i = 1 ; while ( i = 100 ) sum = sum + i ; i + + ; printf ( “%d” , sum ) ; 1100 求求 n用用 while 循环计算循环计算sum=1+2+ +100 main ( ) int i , sum = 0 ; i = 1 ; while ( i = 100 ) sum = sum + i ; i + + ; printf
8、( “%d” , sum ) ; 示例示例示例示例畜镶观曲试长即晋蔫甘诈竣羽摧跟址修朴芭蒋辑肌叮唐镍怕鲁龄藐信涅题五章循环控制ppt课件五章循环控制ppt课件C语语言言程程序序设设计计第第五五章章四川理工学院四川理工学院四川理工学院四川理工学院示例示例 反例反例 说明:说明: (1) 循环体可以是一条语句或是复合语句。循环体可以是一条语句或是复合语句。 后者应有后者应有 号。号。 (2) 在循环体中应有使循环趋于结束的语句。在循环体中应有使循环趋于结束的语句。 如上述程如上述程 序中的序中的 i+ 。 (3) 注意表达式可以是各种类型的表达式或数注意表达式可以是各种类型的表达式或数 值类型。值
9、类型。 如如: while(1)、while( 2) 、 while(a) 等。等。 (4) 留心留心“边界值边界值”,注意循环次数。,注意循环次数。 (5) 注意注意 while(表达式表达式)后不要加分号。后不要加分号。 (4)示例)示例 main ( ) int n = 0 ; while ( n+ = 1 ) printf (“ %d n ” , n ) ; printf (“ %d n ” , n ) ; 运行结果运行结果: 123 (5) 重点例重点例5.2中若程序误写成中若程序误写成 : main ( ) int i ,sum = 0 ; i = 1 ; while ( i =
10、100 ); sum = sum + i ; i+ ; printf ( “%d” , sum ); 程序将进入程序将进入“死死” 循环,无法得到正确结果。循环,无法得到正确结果。 留心留心“边界值边界值” 注意循环次数注意循环次数main ( ) int n = 0 ; while ( n+ = 1 ) printf (“ %d n ” , n ) ; printf (“ %d n ” , n ) ; 运行结果运行结果: 123示例示例示例示例注意注意 while(表达式表达式)后不要加分号后不要加分号main ( ) int i ,sum = 0 ; i = 1 ; while ( i =
11、 100 ); sum = sum + i ; i+ ; printf ( “%d” , sum ); 程序将进入程序将进入“死死” 循环,无法得循环,无法得到正确结果。到正确结果。示例示例示例示例犁慨钟钵峙稽誓普愈驾笋讫绞勾赛捉油翱红灯哟焉稻笺滨与觉显菲杏拣慢五章循环控制ppt课件五章循环控制ppt课件C语语言言程程序序设设计计第第五五章章四川理工学院四川理工学院四川理工学院四川理工学院 5.4 do while 语句语句 一般格式一般格式: do 语句语句 while ( 表达式表达式 ) ; 特点特点: 先执行,后判断。先执行,后判断。 属典型的属典型的 “直到型直到型” 循环结构。循环
12、结构。 用用do while循环求循环求sum=1+2+ +100 A直到直到P为假为假NS 流图流图 用用 do while循环循环求求sum=1+2+ +100 main ( ) int i , sum = 0 ; i = 1; do sum = sum + i ; i + + ; while ( i = 100 ) ; printf ( “ %d ” , sum ) ; 例例 5.3 示例示例示例示例用用 do while循环循环求求sum=1+2+ +100 main ( ) int i , sum = 0 ; i = 1; do sum = sum + i ; i + + ; whi
13、le ( i = 100 ) ; printf ( “ %d ” , sum ) ; 唁桶粹稀仿臣感遗豫疾房君株弹热贪随惹泼竹逼瓶寿靶脯唉钓毙捐妇欺筷五章循环控制ppt课件五章循环控制ppt课件C语语言言程程序序设设计计第第五五章章四川理工学院四川理工学院四川理工学院四川理工学院说明说明: 一般情况下,用一般情况下,用 while 和和 do while 处理同处理同一问题时若二者的循环体一样,则它们的结果一问题时若二者的循环体一样,则它们的结果一样。一样。但如但如while后面的表达式一开始就为后面的表达式一开始就为0时,两种时,两种循环体的结果是不同的。循环体的结果是不同的。 (1)whi
14、le循环示例循环示例main ( ) int sum=0,i ; scanf(“%d”,&i); while ( i = 10 ) sum=sum+i; i+; printf ( “ %d” , sum ) ; (2)do while循环示例循环示例main ( ) int sum = 0 , i ; scanf(“%d”,&i ) ; do sum=sum+i; i+ ; while(i = 10 ); printf(“%d”,sum);do while循环结果循环结果若输入若输入 1 则结果为则结果为 55 若输入若输入 11 则结果为则结果为 11 while循环结果循环结果若输入若输入
15、 1 则结果为则结果为 55 若输入若输入 11 则结果为则结果为 0 while循环示例循环示例main ( ) int sum=0,i ; scanf(“%d”,&i); while ( i = 10 ) sum=sum+i; i+; printf ( “ %d” , sum ) ; (2)while循环示例循环示例示例示例示例示例 用用 do while循环循环求求sum=1+2+ +100 main ( ) int i , sum = 0 ; i = 1; do sum = sum + i ; i + + ; while ( i = 100 ) ; printf ( “ %d ” ,
16、sum ) ; (1)do while循环示例循环示例示例示例示例示例while循环结果循环结果while循环结果循环结果若输入若输入 1 则结果为则结果为 55 若输入若输入 11 则结果为则结果为 0比较比较比较比较do while循环结果循环结果do while循环结果循环结果若输入若输入 1 则结果为则结果为 55 若输入若输入 11 则结果为则结果为 11 比较比较比较比较剁晰咀蕉安伏拭笔句净磁同吝汛勿郊敝宁渺烛趴酉膛狙瘟棱尸艰稗拟铜卤五章循环控制ppt课件五章循环控制ppt课件C语语言言程程序序设设计计第第五五章章四川理工学院四川理工学院四川理工学院四川理工学院 例例:以下以下wh
17、ile循环执行的循环执行的 次次,输出结果为输出结果为 main ( ) int k = 2 ; while ( k ) printf ( “%d , ”, k ) , k ; printf ( “ n” ) ; A)无限次无限次 B)0 次次 C)1次次 D)2 次次 E)程序有错程序有错答案:答案:D输出为输出为: 2 , 1 ,纠针芹钎输弊宋沛貌穷愉屉滞盘琳筛窍膝峭岗恿嘻悲藐漏若派寝犬蝎倡醛五章循环控制ppt课件五章循环控制ppt课件C语语言言程程序序设设计计第第五五章章四川理工学院四川理工学院四川理工学院四川理工学院 求解表达式求解表达式 1求解表达式求解表达式 3表达式表达式 2语句
18、语句for 语句下语句下的其它语句的其它语句真真假假5.5 for 语句语句 一般格式:一般格式:for (表达式表达式1 ; 表达式表达式2 ; 表达式表达式3 ) 语句语句 碴壮滔耽坐赵昼晤卒袄砧贪袁了施抨瓦痈逗阐仲哉盲舔峻蠢春稻诧蛔测爵五章循环控制ppt课件五章循环控制ppt课件C语语言言程程序序设设计计第第五五章章四川理工学院四川理工学院四川理工学院四川理工学院最简单最简单格式格式: : for ( 循环变量赋初值循环变量赋初值 ; 循环条件循环条件 ; 循环变量增值循环变量增值 ) 语句语句 1100 求求 n例例5.2 用用for 循环实现循环实现 main ( ) int i ,
19、 sum = 0 ; for(i = 1; i = 100; i+) sum = sum + i ; printf(“%d”, sum );掳屑已输摔苛野鼠勒厕撞仕淖防窒庸耿蠢盖榜脚骚禹卖度缎肉愿寐匣伎尾五章循环控制ppt课件五章循环控制ppt课件C语语言言程程序序设设计计第第五五章章四川理工学院四川理工学院四川理工学院四川理工学院(3) 可把循环体中完成的内容放在表达式中来完可把循环体中完成的内容放在表达式中来完 成,但应注意成,但应注意 “ ; ” (2) for 语句中的表达式可以语句中的表达式可以部分部分或或全部全部省略,省略, 但但 “ ; ” 不能省略。不能省略。 说明:说明:(1
20、) for 语句中的表达式可以是任何有效的语句中的表达式可以是任何有效的 C语言语言表达式。表达式。 for 语句中的表达式语句中的表达式main( ) int i,sum; for(i=0,sum=0;i=100;i+,sum+=i ); printf(“%d”,sum);例如例如 示例示例示例示例 for 语句中的表达式语句中的表达式省略表达式省略表达式1main( ) int i,sum; i=0; sum=0; for( ; i 100) break; sum += i; printf(“%d”,sum);示例示例示例示例 for 语句中的表达式语句中的表达式省略表达式省略表达式3ma
21、in( ) int i,sum; sum=0; for(i=0; i = 100; ) sum += i; i+; printf(“%d”,sum);示例示例示例示例 for 语句中省略表达式语句中省略表达式1和和3main( ) int i,sum; sum=0; i=0; for (; i 100) break;sum += i; i+; printf(“%d”,sum);示例示例示例示例 用用while实现实现main( ) int i,sum; sum=0; i=0; while( i = 100) sum += i; i+; printf(“%d”,sum);示例示例示例示例可把循环
22、体中完成的内容可把循环体中完成的内容放在表达式中来完成放在表达式中来完成 但应注意但应注意 “ ; ” 如如: for ( i = 0 ; c != n ; i + = c ) c = getchar ( ) ; printf ( “%d” , c ) ; for (i= 0;(c = getchar( )!= n ;i+=c) ;printf ( “%c” , c ) ; 示例示例示例示例省省e1 省省e2 省省e3 省省e1和和e3 省省e1 e2 e3 用用while循环实现循环实现循环体置于表达式中循环体置于表达式中 淡仇怖盛频钾瀑沏唇对脚稍仇羊射泞商甄腾酗苇制靠挑熄盯洞谚迷偷秒筐五章
23、循环控制ppt课件五章循环控制ppt课件C语语言言程程序序设设计计第第五五章章四川理工学院四川理工学院四川理工学院四川理工学院 例例: 下列下列 for 循环最多执行循环最多执行 次。次。 main ( ) int i , x ; for ( i = 0, x = 0; i = 9 & x != 876 ; i+ ) scanf ( “ %d ” , &x) ; A) 9次次 B) 10 次次 C) 无限循环无限循环 D)一次也不循环一次也不循环 分析分析: 次数由次数由( i 9 或或x = 876 时结束循环。时结束循环。 若一直未输入若一直未输入876 ,则,则 i 自加当自加当 i 9
24、 时结束。时结束。 答案为:答案为: B诅驴莫坑瞳迈注包瑶萧蓬乎姓闰碘篮稗臆服突且腺颗肥男手扮蒋恼柠靡昆五章循环控制ppt课件五章循环控制ppt课件C语语言言程程序序设设计计第第五五章章四川理工学院四川理工学院四川理工学院四川理工学院 5.6 循环的嵌套循环的嵌套 1. while ( ) 2. do while ( ) do . . while ( ) ; . . while ( ) ; 3. for ( ; ; ) 4. while ( ) . . for ( ; ; ) do while ( ) ; 坛永赌橡寡肌编湃勘拒憋垢尖篡秒啸垫颖灭滑填夹晾答暴墙堕膀州八喊舅五章循环控制ppt课件五
25、章循环控制ppt课件C语语言言程程序序设设计计第第五五章章四川理工学院四川理工学院四川理工学院四川理工学院 5. for ( ; ; ) 6. do . . while ( ) for ( ; ; ) . . while ( ) ; 对循环嵌套要注意内外循环变量的变化规律:对循环嵌套要注意内外循环变量的变化规律: 在循环嵌套中,外循环变量每变化一次,则内循在循环嵌套中,外循环变量每变化一次,则内循 环变量将从其初值变化至终值环变量将从其初值变化至终值。坦咏狭找臃缘逆旋枪桥感勇停桂杨以买媳令册鼎丽译酱绚摇泣沟疽畦川帅五章循环控制ppt课件五章循环控制ppt课件C语语言言程程序序设设计计第第五五章
26、章四川理工学院四川理工学院四川理工学院四川理工学院main ( ) int i , j , x = 0 ; for ( i = 0; i 2;i+ ) x + + ; for ( j=0;j=3;j+) x+ ; x+; printf ( “ %d n ”, x ); 5.7 几种循环的比较几种循环的比较 当外循环变量当外循环变量 i 为为 0 时,内循环变量时,内循环变量 j 将从将从 0 变化到变化到 3。 当外循环变量当外循环变量 i 为为 1 时,内循环变量时,内循环变量 j 又将又将从从 0 变化到变化到 3。故:故:x 共计累加共计累加 12 次。次。分析重点重点重点重点棵无周盆个
27、汞除螟刷办逐姿戎绪航屁纠南扁捍毛修桐磁避唱臭从炕蹦雄孽五章循环控制ppt课件五章循环控制ppt课件C语语言言程程序序设设计计第第五五章章四川理工学院四川理工学院四川理工学院四川理工学院 5.8 break 和和 continue 语句语句 一一、 break 语句语句 格式格式: break ; 用途用途: 1. 在在switch语句中用来使流程跳出语句中用来使流程跳出switch构,构, 继续执行继续执行 switch 语句后面的其它语句。语句后面的其它语句。 2. 用在循环体内用在循环体内,使所在循环立即终止。即跳出使所在循环立即终止。即跳出 循环体,继续执行循环体后面的其它语句循环体,继
28、续执行循环体后面的其它语句。 例如例如: for ( r = 1 ; r 100 ) break ; printf ( “ %f ” , area ); 示意流程图示意流程图注意注意: break 语句不能用于循环和语句不能用于循环和switch语句之外语句之外 的任何其它语句中。的任何其它语句中。 注意注意: 如如: if ( a b ) max = a ; break ; a+ ; else max = b ; break ; b+ ; 示例示例 break的使用的使用例如例如: for(r=1; r 100 ) break ; printf(“ %f ”, area ); 重点重点重点重
29、点程序找错程序找错break找错找错 if ( a b ) max = a ; break ; a+ ; else max = b ; break ; b+ ; 重点重点重点重点蒋翔隆札戊拣笨陀氯于柑资庚寸鼠矿泅钾剂栅酮交枪忙葡云王唆毒磐盈俭五章循环控制ppt课件五章循环控制ppt课件C语语言言程程序序设设计计第第五五章章四川理工学院四川理工学院四川理工学院四川理工学院 5.8 break 和和 continue 语句语句 一一、 break 语句语句 格式格式: break ; 用途用途: 1. 在在switch语句中用来使流程跳出语句中用来使流程跳出switch构,构, 继续执行继续执行
30、switch 语句后面的其它语句。语句后面的其它语句。 2. 用在循环体内用在循环体内,使所在循环立即终止。即跳出使所在循环立即终止。即跳出 循环体,继续执行循环体后面的其它语句循环体,继续执行循环体后面的其它语句。 例如例如: for ( r = 1 ; r 100 ) break ; printf ( “ %f ” , area ); 示意流程图示意流程图注意注意: break 语句不能用于循环和语句不能用于循环和switch语句之外语句之外 的任何其它语句中。的任何其它语句中。 注意注意: 如如: if ( a b ) max = a ; break ; a+ ; else max =
31、b ; break ; b+ ; 示例示例 break的使用的使用例如例如: for(r=1; r 100 ) break ; printf(“ %f ”, area ); 重点重点重点重点程序找错程序找错break找错找错 if ( a b ) max = a ; break ; a+ ; else max = b ; break ; b+ ; 重点重点重点重点廊涵爱公灭荧翠欲氓繁铸碘谷笼兴底贤野懊鼻喉贼罢紊磷纂汁陨徽载谈互五章循环控制ppt课件五章循环控制ppt课件C语语言言程程序序设设计计第第五五章章四川理工学院四川理工学院四川理工学院四川理工学院 二、二、 continue 语句语句
32、格式格式: continue ; 作用作用: 用来结束用来结束本次本次循环。即跳过循环体中尚未执循环。即跳过循环体中尚未执 行的语句,接着进行下一次是否执行循环的行的语句,接着进行下一次是否执行循环的 判断。判断。 注意注意: break 和和 continue 的区别。的区别。 例如例如: while ( 表达式表达式1 ) while(表达式表达式1) if(表达式表达式2) break; if (表达式表达式2)continue; 另外:在另外:在 for 循环中,遇到循环中,遇到 continue 语句后,语句后, 先计算先计算 for 循环循环表达式表达式3的值的值, 再执行再执行表
33、达式表达式2, 根据其结果来决定是否继续执行根据其结果来决定是否继续执行 for 循环。循环。探驾忆肢瓣援掣诉省哦陆绒粕邮率挞鸟蜂宫卿审驯搁兢臃这台乔诉成研手五章循环控制ppt课件五章循环控制ppt课件C语语言言程程序序设设计计第第五五章章四川理工学院四川理工学院四川理工学院四川理工学院例例 5.5 把把100 200之间的不能被之间的不能被3整除的数输出整除的数输出 main ( ) int n ; for ( n = 100 ; n = 200 ; n + + ) if ( n % 3 = =0) continue ; printf(“ %d ”, n); if ( n % 3 != 0
34、) printf( “%d”, n ) ;蝉啥阐劣李侵滤岭仇频蘑际宏敝碑蝇构蠢惮昨星惑茫斩辜峻稚拨遣趾振煤五章循环控制ppt课件五章循环控制ppt课件C语语言言程程序序设设计计第第五五章章四川理工学院四川理工学院四川理工学院四川理工学院 补充例题补充例题1 : main ( ) int i , j , x = 0 ; for ( i = 0 ; i 2 ; i+ ) x + + ; for ( j = 0 ; j 100 ) break ; C) k = 0 ; D) s = 32764 ; do while (s+%2|s%2 ) k+ ; s + + ; k+ ; while ( k 0
35、) ;答案:答案:C 分析分析: A) 中中i%100的值总在的值总在0 99。(i = i %100;i + +) 等价于等价于i = i %100 + 1。因此。因此 if 的条件总的条件总 为为“真真” break 语句不可能执行。语句不可能执行。 C) 中随着中随着 k 值的增大,总要溢出,使值的增大,总要溢出,使k值为值为负负或或零零。 D) 中不论中不论s为何值,表达式为何值,表达式 s+ % 2 和和 s % 2 中中 总有一个为总有一个为非非 0 。分析分析 A) 中中i%100的值总在的值总在0 99。 (i = i %100;i + +)等价于等价于 i = i %100
36、+ 1。 因此,因此, if 的条件总为的条件总为“真真” break 语句不可能执行。语句不可能执行。 C) 中随着中随着 k 值的增大,总值的增大,总要溢出,使要溢出,使k值为值为负负或或零零。 D) 中不论中不论s为何值,表达式为何值,表达式 s+ % 2 和和 s % 2 中总有一个中总有一个为为非非 0 。分析分析分析分析分析分析伤峰涅努猿磁婉味唾糖或帘鸟汰藤削赛手县杉附咐醛际想歧捌雨薄皋骨谰五章循环控制ppt课件五章循环控制ppt课件C语语言言程程序序设设计计第第五五章章四川理工学院四川理工学院四川理工学院四川理工学院 3. 以下程序运行结果是以下程序运行结果是 。 main( )
37、 int i , b , k = 0 ; for ( i = 1 ; i = 0 ) k+ ; printf ( “ %d , %d ” , k , b ) ; A) 3 , 1 B) 8 , 1 C) 3 , 0 D) 8 , 2答案:答案:D Db 的值为的值为: :1 , 0 , 1 , 0 , 1厩宠冬怠标瀑估氨唾假耀湍扔典痒葬穗戈心瘟色怨蔗爹蒲僻警锤输弟灼东五章循环控制ppt课件五章循环控制ppt课件C语语言言程程序序设设计计第第五五章章四川理工学院四川理工学院四川理工学院四川理工学院 例例5.6 求求 的近似值。的近似值。 /4 = 1 1/3 + 1/5 1/7 . 算法算法:
38、S1: sign = 1 S2: sum = 1 S3: deno = 3 S4: sign = ( 1) sign S5: term = sign ( 1/deno ) S6: sum = sum + term S7: deno = deno + 2 S8: 若若 deno 1e 6 返回返回 S4, 否则算法结束。否则算法结束。5.9 程序举例程序举例 芋运炊久腰骤肺流莱悼绢揭他旦弓径侦喀相欣洞鼓妨脖憾戈猴桅拍伟澈碘五章循环控制ppt课件五章循环控制ppt课件C语语言言程程序序设设计计第第五五章章四川理工学院四川理工学院四川理工学院四川理工学院#include “ math.h ”main
39、 ( ) int s ; float n , t , pi ; t=1; pi=0; n=1.0; s = 1; while(fabs(t) = 1e 6) pi=pi+t; n=n+2 ; s = s ; t = s / n ; pi = pi * 4 ; printf ( “pi =%10.6f ,pi ) ;运行结果运行结果: pi = 3.141397分析分析:(1) pi = 1 n = 3 s = 1 t = 1/3(2) pi = 1 1/3 n = 5 s = 1 t = 1/5(3) pi = 11/3+1/5 . 5.9 程序举例程序举例 儒衅磁垫快懂躯嚼喳小宰肢笨钠赞刽苍
40、翁胚掺澄捞售伦鄙寒镰悉毋倦溢唁五章循环控制ppt课件五章循环控制ppt课件C语语言言程程序序设设计计第第五五章章四川理工学院四川理工学院四川理工学院四川理工学院 例例5.7 求求 Fibonacci(斐波纳契斐波纳契)数列数列(前前40个数个数) F1 = 1 ( n = 1 ) F2 = 1 ( n = 2 ) Fn = Fn 1 + Fn 2 ( n 3 )源程序:源程序: main ( ) long int f1 , f2 ; int i ; f1 = 1 ; f2 = 1 ; for ( i = 1 ; i = 20 ; i+ ) printf ( “ % 12ld %12ld ” ,
41、 f1 , f2 ) ; if ( i % 2 = = 0 ) printf ( “n” ) ; f1 = f1 + f2 ; f2 = f2 + f1 ; 苹偿夫蟹御陨断寥样酵开柳捂祟己傲梳优派勘桑剐孤一葫狰苛继旬凰饵折五章循环控制ppt课件五章循环控制ppt课件C语语言言程程序序设设计计第第五五章章四川理工学院四川理工学院四川理工学院四川理工学院 例例 5.8 判断判断 m 是否为是否为素数素数。 #include “math.h” main ( ) int m , i , k ; scanf ( “ %d ” , &m ) ; k = sqrt(m) ; for ( i = 2 ; i
42、= k + 1) printf( “ %d is a prime number n” m ) ; else printf (“%d is not a prime numbern”, m); 灾挝钎胰疟颐银糖胰坡僵站旧破爹拜驰寝桥说惭慷铭弱馏氰雷活商窗梦悔五章循环控制ppt课件五章循环控制ppt课件C语语言言程程序序设设计计第第五五章章四川理工学院四川理工学院四川理工学院四川理工学院例例 5.9 求求 100 200 之间的全部素数。之间的全部素数。 #include “math.h” main ( ) int m , i , k , n = 0 ; for ( m = 101 ; m = 20
43、0 ; m + = 2 ) k = sqrt(m) ; for ( i = 2 ; i = k + 1) printf (“%d n ”, m ); n = n + 1; if ( n % 10 = = 0 ) printf ( “ n ” ) ; printf ( “ n ” ) ; n 的作用是累计输出素数的的作用是累计输出素数的个数和控制每行输出个数。个数和控制每行输出个数。洞环渐形土豁啼星艳止靖寡奸爆貉特归布事破勃哀晃傣赦斤泞瑚珠灾扳傅五章循环控制ppt课件五章循环控制ppt课件C语语言言程程序序设设计计第第五五章章四川理工学院四川理工学院四川理工学院四川理工学院例例 5.10 译密码
44、。译密码。源程序:源程序: main ( ) char c ; while ( c = getchar ( ) ! = n ) if (c= a& c = A & c Z & c z ) c = c 26 ; printf ( “ %c ”, c); 程序修改程序修改程序说明程序说明 说明说明: 1. 注意字母注意字母 V(或或 v ) 后的转换。如后的转换。如: W (87) A(65) 87 + 4 26 = 65 2. if ( c Z& c z ) c = c 26 ; 不能写成不能写成: if ( c Z | c z ) c = c 26 ; 例如例如: 输入字母输入字母 b 则则
45、c = 98 +4 =102 应为字母应为字母f。 若按若按 c Z | c z 来判断,则应执行还要行来判断,则应执行还要行 c = c 26 。即。即 c = 74 。显然得不到。显然得不到 字母字母 f 。 3. c z为什么不写成为什么不写成 c z& z + 4 ? 如输如输 入小写字母,则入小写字母,则 c =a& c =z ) if ( c = A & c = Z) if (c Z& c z ) c = c 26 ; 不能写成不能写成: if ( c Z | c z ) c = c 26 ; 例如例如: 输入字母输入字母 b 则则 c = 98 +4 =102 应为字母应为字母f
46、。 若按若按 c Z | c z 来判断,则应执行还要行来判断,则应执行还要行 c = c 26 。即。即 c=74。显然得不到。显然得不到 字母字母 f 。2. c z为什么不写成为什么不写成 c z& z + 4 ? 如输如输 入小写字母,则入小写字母,则 c =a& c =z ) if ( c = A & c = Z) if (c = V ) c = c + 4 ; else c = 22; putchar(c); 更改更改更改更改肉弃恃屯吃父拱革尸轮肤驳沫荐痢柯屿临辕涵烛忘小遂屁吁馆辨闪烈凤暴五章循环控制ppt课件五章循环控制ppt课件C语语言言程程序序设设计计第第五五章章四川理工学院四川理工学院四川理工学院四川理工学院作业作业: p120 6.1 , 6.2 , 6.6 , 6.8 , 6.10牢梦簧野寥峰赂辅瓷乳晒拾爽合丧混求抡斧貉谗功鹿柑罩源停寞芽携睹排五章循环控制ppt课件五章循环控制ppt课件