1、循环结构程序设计舒它稗殿陆泞池道悲护斤番蚤扑锭运淆贼矿靳歇敢续兽嘶杖坊撅耪哺翅逝10循环结构程序设计(3)10循环结构程序设计(3)上页 下页 主页 结束循环结构程序设计( 3)o 回顾( for、 while语句)o break语句o continue语句o 综合练习o 课堂实践卡躬烁职辛沟冗件戴误迪盒颧筋些椰令垫淘炙艰瑞碑阁害窗针刽绣泌原藉10循环结构程序设计(3)10循环结构程序设计(3)上页 下页 主页 结束课前回顾o 循环的三要素:o ( 1)循环条件o ( 2)循环体o ( 3)循环变量的控制语句o C语言中,循环的几种形式:o while语句o for语句o do-while语句
2、毛想恼恢纸婆尤绿姨畦帚份枪渣擦懦荔均救锯握港柜啄海嗡谱伍援腹删内10循环结构程序设计(3)10循环结构程序设计(3)上页 下页 主页 结束问题 形如:1121231234的形式如果控制输出多重循环的问题蚊症惭词打着米冷貉踏迁蕊簇按珐碧辟殷狱借湛解锹豪托赚韧搬彤蕴敏耿10循环结构程序设计(3)10循环结构程序设计(3)上页 下页 主页 结束多重循环解决的典型问题 ( 1)平面阵列输出( 2)枚举问题( 3)任意循环嵌套( 4)复杂逻辑推理杏觉陀鸭幅春枉圭坚骡橱炎前电豺氦忱应茁却蒜者剧疹园奠涝怎岁颊括咕10循环结构程序设计(3)10循环结构程序设计(3)上页 下页 主页 结束平面阵列输出 解决问题
3、:1 * 12 *123 *1234 *12345 *栓菲辈往澈芭妆革附阳烫扔例镜播腺萝缀圃箱来坍乓韵莆姜孤堑罗爪幸樱10循环结构程序设计(3)10循环结构程序设计(3)上页 下页 主页 结束平面阵列输出 问题分析:( 1)程序要一行一行输出,因此,需要一个循环来控制总的要输出多少行( 2)在每一行上,每一列输出的内容是什么,得由另一个循环来控制形式如下:for( row=1; rown; row+) /n是最大行数for( col=1; col m; col+) /col是最大列数/每一列上要输出的具体内容printf(“n”); /每行末尾都要换行虑樟根哼努卵屯棒豺手蹄精辫仰其郁尖尸侵慧膏
4、偏莹谬嫂苞揖奸差际绰踌10循环结构程序设计(3)10循环结构程序设计(3)上页 下页 主页 结束平面阵列输出 解决问题:1 121231234123451234561234567问题 (1),总共有多少行 ,得出外循环 :for( row=1; row7; row+) 问题 (2),每行上各有多少列 ,得出内循环 :for(col=1; colrow;col+)问题 (3),每一列上具体输出什么 ,得出printf语句 :printf(“%d”, col);问题 (4),每行输出结束后 ,要换行 ,得出需要加下面的换行语句 :printf(“n”); /换行棺伐恤晃扦荆蹈果火何铁阿决查吼鸟情咏
5、由疯涎撅旨身橇豆迟郴票缩幸稿10循环结构程序设计(3)10循环结构程序设计(3)上页 下页 主页 结束平面阵列输出 解决问题:1 121231234123451234561234567void list()int row, col;for( row=1; row7; row+)for(col=1; colrow;col+)printf(“%d”, col);printf(“n”); /换行畔撩诀绸氏檀潜波焊扶烁锡粟豌位展惠妓押锣航秦泽四促烧骄被吞随睹衬10循环结构程序设计(3)10循环结构程序设计(3)上页 下页 主页 结束平面阵列输出 解决问题:* *问题 (1),有多少行 ?(外层循环 )
6、for( row=1; row ? ; row+) 问题 (2),每行上的每列的内容 ?(内循环)(除 *外 ,还有空格 )for(s=1; s?; s+) /每行上各有多少空格 ?for(st=1; st?; st+) /每行上各有多少 *?问题 (3),在 s循环内输出 空格 :printf(“ “);在 st循环内输出 *printf(“*”);问题 (4),输出完一行后 ,要换行剖赠屹哈行膳杀踌悦钳逝札趣团倾孽傅碧骤囊拒勿瘦烧矿秧嚣贪砒斤茵扩10循环结构程序设计(3)10循环结构程序设计(3)上页 下页 主页 结束平面阵列输出 行号 空格个数 s *个数 st1 4 12 3 33 2
7、 54 1 75 0 9解决问题:* *for( row=1; row ? ; row+) for(s=1; s?; s+) /控制空格个数printf(“ “); for(st=1; st?; st+) /控制 *个数printf(“*”);printf(“n”); /换行S=总行数 -行号St=2*行号 -1版飞第询薛希颧贱辣般俞垂皿栅玲室高养鲁篱编皱垛盘饶菱砚妇渗展遂桶10循环结构程序设计(3)10循环结构程序设计(3)上页 下页 主页 结束平面阵列输出 练习解决问题:1*1=1 2*1=2 2*2=43*1=3 3*2=6 3*3=94*1=4 4*2=8 4*3=12 4*4=169
8、*1=9 9*2=18 9*3=27 9*9=81拦喧改么味食棠措酵昆胡搜掠家喊扯朱减迂狗拥遮雹歉询粘酷运萍尼雏肿10循环结构程序设计(3)10循环结构程序设计(3)上页 下页 主页 结束枚举问题 解决问题:百钱买百鸡鸡翁一 ,值钱五 ;鸡母一 ,值钱三 ;鸡雏三 ,值钱一 .百钱买百鸡 , 鸡翁、鸡母、鸡雏各几何 ?此类问题的解决办法就是 -把所有组合拿来试一次,符合条件的就留下,不符合的去掉。(用循环去试遍所有变量)凳棍泊藻拱钉皑蒙咋酞刽押芋截吃恩好仑芜粉钩侄膨廖效廷厚礁三安泳赦10循环结构程序设计(3)10循环结构程序设计(3)上页 下页 主页 结束枚举问题 百钱买百鸡for(cock=
9、0; cock=20;cock+)/鸡翁的所有可能值for(hen=0; hen=33;hen+)/鸡母的所有可能值for(chick=0; chick=100;chick+=3)/鸡雏的所有可能值if( 条件 ) 输出 cock、 hen、 chick的值 条件为:cock+hen+chick=100 switch(i) case 0: printf(“ i=0 “); break;case 1: printf(“ i=1 “); break;case 2: printf(“ i=2 “); case 3: printf(“ i=3 “); break;default: printf(“de
10、fault“);结果: i=2 i=3switch 语句中的 break功能:结束当前 switch的执行,转到该 switch语句的下一条语句执行。髓猫炸蜕抚逢萝掳镐挑丁既雏咨包阉简榆磅椅停阉便竞恩躬樱漆楼褒醇栏10循环结构程序设计(3)10循环结构程序设计(3)上页 下页 主页 结束循环语句中的 break功能:跳出该 break所在的那层循环语句,提前终止当前循环。main() int i;for(i=1;i=10;i+) printf(“%d “,i);if(i=5) break;printf(“game over!”);结果: 12345game over!圭秘物悼叶懂恶棵茹华玩苹汲
11、符域可蓉富硅木熙罐仪刨受科准南烦辉什笼10循环结构程序设计(3)10循环结构程序设计(3)上页 下页 主页 结束continue语句彦恼色碉俘斤明丽手脊谬辆充矗名守鹿协欲衷迷浮总肮夏药影抿淮明矮径10循环结构程序设计(3)10循环结构程序设计(3)上页 下页 主页 结束循环语句中的 continue功能:终止本轮循环循环体语句的执行,对于 while语句 : 转去判断 while循环条件对于 for语句 :转去执行表达式 3,再判断表达式 2兼径椿般如嚣仙角甜韩持探矽亦氓琶俘朔缄迪景矛空仇缨赴曳电宝卤晾冈10循环结构程序设计(3)10循环结构程序设计(3)上页 下页 主页 结束while语句中
12、的 continue#include“stdio.h“main( ) int i=1;while(i=10)printf(“i=%dn“,i);if(i=3)continue;printf(“circle %dn“, i);i+;printf(“over“);盖碗酮殆绥硒匙猿选腥雅您养阜键并狰札屑搓止芦么仕岛既澎填噪枕玉慑10循环结构程序设计(3)10循环结构程序设计(3)上页 下页 主页 结束for语句中的 continue#include“stdio.h“main( ) int i;for(i=1;i=10;i+)printf(“i=%dn“,i);if(i=3)continue;prin
13、tf(“circle %dn“, i);printf(“over“);隋桩戍吭寓磷耘螺虹触赊铆供常交荧涉羚秆洗娱难粳孕冀飘巫玻吼灾衣港10循环结构程序设计(3)10循环结构程序设计(3)continue与 break#include“stdio.h“main( )int i;for(i=1;i=10;i+)printf(“i=%dn“,i);if(i=3)continue;printf(“circle %d”,i);printf(“over“);#include“stdio.h“main( )int i;for(i=1;i=10;i+)printf(“i=%dn“,i);if(i=3)brea
14、k;printf(“over“);盗詹咒犁瞩扼蝶汐分踏顽溅是拿堑接启竣朵期屿恶脸踊岔考砂优尊脑弗剁10循环结构程序设计(3)10循环结构程序设计(3)上页 下页 主页 结束o 1、求 1! 2! 3!+ +n!的结果不超过21350000的最大的 n, 其中 n由键盘输入。o 2、百钱买百鸡问题如果只要一组解,程序该如何修改?课堂实践欺几氰胀癌而窍商牡婚薛悠啊被服匡扇检虞叹遇涸胞行亥炳闻孕亡棺娃孩10循环结构程序设计(3)10循环结构程序设计(3)上页 下页 主页 结束o while for语句的综合练习o break continue语句的应用 小结丝化奉求狞峪侠骏芬爱制彻撵滁垃堑筛裔瘦际炉瞄谬唐某看涩布工逝唾屡10循环结构程序设计(3)10循环结构程序设计(3)