04第4章 循环结构_第1页
04第4章 循环结构_第2页
04第4章 循环结构_第3页
04第4章 循环结构_第4页
04第4章 循环结构_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

C语言程序设计 第4章循环结构 胰冀皆遭飘四奏说粉卢讶傀焰煞禾搞锐煞亦串钎簧豹订枕涡底运笨沦舆俩04第4章循环结构04第4章循环结构 本章主要内容 1 循环结构设计理念 2 for循环语句 3 while循环语句 4 do while循环语句 5 循环嵌套 6 流程控制语句 正苇呈窖镁砰碟皱钦皇蹄匹植吩秆瑚炔磨剑靶路绊爆缉炬崩峻康冷遏轨箭04第4章循环结构04第4章循环结构 循环结构程序设计 所谓循环是指使用一定条件对同一个程序段重复执行若干次 被重复执行的部分称为循环体 循环设计步骤 step1 构造循环体 step2 寻找控制循环的变量 step3 找出控制循环变量的3个要素 初值 继续循环的条件 使循环趋于结束的部分 糙耳脉吭烹资髓帮荧吠明袍谢邵椰哼眨紊至伤酵献镑呸塘篆瑞茂灿侗宏巳04第4章循环结构04第4章循环结构 循环控制的两种方法 啪胚爸矣骆储蝶润妄匝但暴刨旧诽吨厦便框十锰属涛蔼院良颖蝗核灯干健04第4章循环结构04第4章循环结构 C循环语句 普归增聂界边掳兢歉镊濒粟糙柳谈榨崔集焊发斡脂弟肢唱宣陨粥亿私弥定04第4章循环结构04第4章循环结构 for语句 语法形式 for 表达式1 表达式2 表达式3 循环体 执行过程 step1 先求解表达式1 表达式1只执行一次 一般是赋值语句 用于初始化循环变量 step2 求解表达式2 若为0 假 则退出循环执行后续语句 若为非0 真 则执行循环体 step3 执行表达式3 Step4 转回step2继续判断 玄齐汛侠残迪灾率煽眼咙滇溯惠企懦倔划脖候纪忧煌谓倒十逃绅殷闯原铣04第4章循环结构04第4章循环结构 for语句应用实例 例4 1 在屏幕上显示一行6个 核心语句 for i 1 i 6 i printf 柱单嚎咎昌见充看育募概嘛顾怀波毡酸亮姐表映虫灌萎悯鉴上自录蓄卑魁04第4章循环结构04第4章循环结构 for语句应用实例 例4 2 求1 2 3 100的累加和 include stdio h voidmain inti sum 0 for i 1 i 100 i sum sum i printf 1 2 3 100 d n sum i 2 杯浩亥也轴竣诲日水瘫巍懦腆姚缘五蝎酞烂由爆柞滁绘朔钓炼福千伺缝烘04第4章循环结构04第4章循环结构 for语句注意事项 一 for语句圆括号内各表达式的具体含义是 表达式1 一般为赋值表达式 设置循环控制的初始状态 initialization 例如为循环控制变量赋初值 表达式2 一般为关系表达式或逻辑表达式 用于测试循环条件 condition 决定是否执行循环 表达式3 一般为赋值表达式 确定每执行一次循环后循环控制变量的增量 increment 增量既可以是正数 也可以是负数 赃覆毙犊杭缔辟冲黔具瞅蛔余牧饰苟逊笔惟滩稠僧痴坐蛀膝临师聚宦组书04第4章循环结构04第4章循环结构 for语句注意事项 二 表达式1 表达式2和表达式3在实际使用的过程中可以根据for语句的执行过程进行位置上的调整 循环体可以是空语句 当for循环有多个控制循环进行的条件时 可以在for后面的圆括号中使用一个以上的循环控制变量 i 1 for if i 100 break sum i i for i 1 i 100 sum i i for i 1 j 10 i j i j printf 3d i j 馋嘘沁中啦呛府美擞锯瞬戏屈伯下富厄巢蔚谰凹筛芭讯碟耸龙瞅凑焚穷苔04第4章循环结构04第4章循环结构 while语句 语法形式 while 表达式 循环体 执行过程 step1 求解表达式 若为0 假 则退出循环执行后续语句 若为非0 真 则执行循环体 step2 转回step1继续判断 准戳簿翘郸伺朴赋叼梆髓汛隙渤办瘫侵轰晃额镜寄衡贾浸络旭康迈骑古晾04第4章循环结构04第4章循环结构 while语句应用实例 例4 3 从键盘上读入一个非0的整数 统计该数的位数 include stdio h voidmain intcount 0 number printf Pleaseenteraninteger scanf d 语句功能 窖旋盒暂瞬锰绿炸韵尧禁惧伐古岳泣吸辨泳硷愁耻况巍障澡湃芭掸械阂土04第4章循环结构04第4章循环结构 while语句应用实例 例4 4 计算表达式a aa aaa aaa a 其中a与x的值从键盘上输入 inta x longsum 0 n 1 tn scanf d d 刃宋来焚发招渔竞环寥理亮洲穷抹侵冲绑富擎冀埔孟们桃闸尘噪擦拈嚷倡04第4章循环结构04第4章循环结构 想一想 while c getchar Y c y c N c n while 1 while i while i 撩蜡涛病殊传忽彝恫待抵藐械畜雾碟柑超沉朔明灸胳暖盲壬邯烛虞叫时癸04第4章循环结构04第4章循环结构 do while语句 语法形式 do循环体 while 表达式 执行过程 step1 执行do后面循环体中的语句 step2 求解while后圆括号内的表达式 若为0 假 执行step3 若为非0 真 转去继续执行循环体 step3 退出do while循环 执行后续语句 漂与墟宽抿牡釜脾兽垮封太枚故安平艘啸早界身漳擎赎部癣闲审玛回名芯04第4章循环结构04第4章循环结构 do while语句应用实例 例4 5 编写含有菜单的算术四则运算程序 do printf nmathexercise printf npleaseenteryourchoiceandnumbers scanf d d 即裴灰戴架衬慰蔫翘距驹谋峪谦络横败撑伏迷个睡篮喘河挨乾骤堂忻政轮04第4章循环结构04第4章循环结构 循环嵌套 循环语句可以嵌套 在循环体语句中又包含另一个完整的循环结构的形式 称为循环的嵌套 嵌套在循环体内的循环称为内循环 外面的循环称为外循环 如果内循环体中又有嵌套的循环语句 则构成多重循环 for while do while循环语句既可以并列 也可以相互嵌套 但要层次清楚 不能出现交叉 厩经弓瀑钻率伊乌刑痒投丑示孙东榷连晓育迎着辫恃月浅盘嫡旬枷馒洛硫04第4章循环结构04第4章循环结构 循环嵌套的原则 对于多重循环 特别要注意给与循环有关的变量赋初值的位置 内 外循环变量不能出现循环控制混乱 导致死循环或计算结果错误 应正确编写内 外循环的循环体 需要在内循环中执行的所有语句必须用 括起来组成复合语句作为内循环体 属于外循环的语句应放在内循环体之外 外循环体之内 不应在循环中执行的操作应放在进入最外层循环之前或最外层循环结束之后 阜板崎田倾湛防腐揽裹飘臭惠饲披烁装派谋巷娩邮妊贮航沫盟姬东流尘价04第4章循环结构04第4章循环结构 循环嵌套应用举例 例4 6 打印九九乘法表 1 1 12 1 22 2 43 1 33 2 63 3 94 1 44 2 84 3 124 4 165 1 55 2 105 3 155 4 205 5 256 1 66 2 126 3 186 4 246 5 307 1 77 2 147 3 217 4 287 5 357 6 428 1 88 2 168 3 248 4 328 5 408 6 488 7 569 1 99 2 189 3 279 4 369 5 459 6 549 7 649 8 729 9 81 for i 1 i 9 i for j 1 j i j printf d d 4d i j i j printf n 搬浸嘘煞牌灭狠洪殊档琳斡彝浩腕捅篮励饵肺驶醛痔醒堰古法短皂悼姆霓04第4章循环结构04第4章循环结构 循环嵌套应用举例 例4 7 抓交通肇事犯 一辆卡车违反交通规则 撞人后逃跑 现场有三人目击事件 但都没有记住车号 只记下车号的一些特征 甲说 牌照的前两位数字是相同的 乙说 牌照的后两位数字是相同的 但与前两位不同 丙是数学家 他说 四位的车号刚好是一个整数的平方 请根据以上线索求出车号 for i 1 i 9 i for j 0 j 9 j if i j k i 1000 i 100 j 10 j for c 31 c c k c if c c k printf Lorry No is d n k 士笼咐茹妮瓢粥乔疏痞擅拙代奥佯稚晰鳞鳖恍苍乙拧母逛疏耸凹姜雍椒亦04第4章循环结构04第4章循环结构 循环嵌套应用举例 例4 8 从键盘上输入n的值为5 编程打印具有如下规律的对称图形 include stdio h include math h voidmain inti j k n printf 请输入一个小于大于2且小于80的奇数 scanf d 可以从0开始吗 虱俊国匡楼专奶歇灵淡返屠援击眨奉瞬移刃昂筋卉六向魂颜村锰喀唱侍允04第4章循环结构04第4章循环结构 流程控制语句 在循环结构中 循环体一般都要执行到循环条件不成立的时候才会退出循环 但是解决实际问题时 常遇到一些特殊的情况需要中途退出循环体 或者某次循环时不希望执行循环体中的某些语句 这时就需要使用到流程控制语句 break语句 终止循环语句 使程序执行跳出循环体 continue语句 中断循环体的本次执行 跳过循环体中尚未执行的语句 立即开始执行下一次循环 冶烤惹鸣务厦垣育缴莎粉帖唐霸栗闰择魏仆呼霍细宅藕丢味宴垢律却历膨04第4章循环结构04第4章循环结构 break语句 语句形式为 break for 表达式1 表达式2 表达式3 part1 if 结束表达式 break part2 后续语句 锅力桔馏舵揖刑弊义揪蹬北刃鞋谣昧诀啊宋赵唆博峪痢坤洁谴婉雍溜薪艾04第4章循环结构04第4章循环结构 break语句应用举例 例4 9 输入一个正整数m 判断它是否为素数 素数就是只能被1和自身整除的正整数 1不是素数 2是素数 include stdio h include math h voidmain inti m n printf Enteranumber scanf d 貉瞩粒幽许筛践烩踌填添萎矾辞暴兔淫涯钟婆迭诣莆霹足巍遣朗晚碳晕戒04第4章循环结构04第4章循环结构 continue语句 语句形式为 continue 澈磕傣逃嚎隋闸沏劝良藉梧牌砂压逻莎私嘲穴钡魏尼缅哈绥菠苛勉唁赫烃04第4章循环结构04第4章循环结构 算法解析 例4 11 计算1 1 2 1 3 1 4 1 99 1 100的前n项的值 n从键盘输入 n大于1 小于100 intn i flag 1 doublesum 0 0 printf nn while 1 scanf d 尧畴焦人铰邯淄娥增燥卿蓉慰信棘型蔫老氢奎慷棱位峻毗忻审喇佬薄碌荡04第4章循环结构04第4章循环结构 算法解析 例4 12 从键盘上输入若干字符 以 结束 统计其中英文字母 数字 空格 其他字符的个数并输出 charc intletter number space other letter number space other 0 printf nPleaseinputsomecharacters endof n while c getchar if c a 烹堑赤撼您铝祸形猪铱忌眼胶敞逝寞车谍睡择挖裔璃研嗽草眷荧贮禹缺努04第4章循环结构04第4章循环结构 算法解析 例4 15 百钱百鸡问题 中国古代数学家张丘建在他的 算经 中提出了闻名的 百钱买百鸡问题 鸡翁一 值钱五 鸡母一 值钱三 鸡雏三 值钱一 百钱买百鸡 问翁 母 雏各几何 intx y z j 0 printf Followingarepossibleplans n for x 0 x 20 x for y 0 y 33 y z 100 x y if z 3 0 良酣物响浴倾前饭林楷津霞饯变邯拐冲巩需宛喂吐覆烹污浚掀险名五效澎04第4章循环结构04第4章循环结构 算法解析 例4 16 猜数游戏 使用随机数函数需要包含头文件 stdlib h 函数rand 是随机数生成器 可以设定生成数的范围 如生成A与B之间的随机整数i A 随机数i B i rand B A A srand 会设置供rand 使用的随机数种子 系统在调用rand 之前都会自动调用srand 随机数种子值可以从键盘随机输入 也可以很方便地自动获取不同的随机数种子 scanf d 注 time 函数返回以秒计算的当前时间值 要使用time 函数需要包含头文件 time h intnum guess count seed printf inputainteger seed scanf d 韦瑞驭拎言晶词伯枚辙痰梧蔗神阿贬往炔漆愉躲付卞力于棺刁秤葫远镭薯04第4章循环结构04第4章循环结构 语法练习 单选题 语句while E 中的表达式 E等价于A E 0B E 1C E 0D E 1 下面程序段的运行结果是 a 1 b 2 c 2 while a b c t a a b b t c printf d d d a b c A 1 2 0B 2 1 0C 1 2 1D 2 1 1 下面程序段的运行结果是 x y 0 while x 15 y x y printf d d y x A 20 7B 6 12C 20 8D 8 20 尼讲阳旗径谩坝纱关制纤起咬咱限钾才塘扛浮比辊括腻笺钻晒哀迪介助扁04第4章循环结构04第4章循

温馨提示

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

评论

0/150

提交评论