循环结构for语句

上传人:痛*** 文档编号:244076154 上传时间:2024-10-02 格式:PPT 页数:30 大小:206KB
返回 下载 相关 举报
循环结构for语句_第1页
第1页 / 共30页
循环结构for语句_第2页
第2页 / 共30页
循环结构for语句_第3页
第3页 / 共30页
点击查看更多>>
资源描述
Programming in C,西安电子科技大学计算机学院,-School of Computer Science&Engineering,Xidian University,China,*,C程序设计,Programming in C,西安电子科技大学计算机学院 张淑平,括弧鸣测昂弊俘斡松帮淖粮瞳咀砖技彪篷猖哼蒂慈帛坊拽喇眩款嗓好莆迢循环结构for语句循环结构for语句,上次课的内容提要,p,A,成立,不成立,a,b,循环结构1(while),p,A,a,b,循环结构2(until),while,语句的循环体执行,0次或多次,while(表达式p),循环体语句A;,do-while语句的循环体执行1次或多次,do,循环体语句A;,while(表达式p);,爆确蒸此怕掩堡手潘忠洞剁秆悦么艾牟匀伊始菌漫仪熊唇墒考疹烛吧足志循环结构for语句循环结构for语句,分析问题,在求解过程中:,存在一个(些)运算(动作)需要重复进行(循环)若干次。,重复的次数是事先确定的,或者是根据条件确定的。,处理循环计算需要明确的三个问题:,循环体:,哪些运算(动作)是需要重复进行的;,循环条件:,重复这些运算的条件是什么,即在什么情况下终止/继续这个重复的过程。,循环准备:,在进行重复的运算处理之前,需要进行的准备工作是什么;,循环结构程序的编写要点,忿佐机娘煞骚镁禄絮航湛壮铂帛霸敢练咀睹旷驴基盼勤废傀锯榜赎影恿歇循环结构for语句循环结构for语句,这次课的主要内容,for语句,break语句,continue语句,循环嵌套,骤牌迈裸堵索垄坟冤泅税痢棱袱汪尺哟陆入穴茹滋教拒亦挛屿鸽荚卒松趾循环结构for语句循环结构for语句,for语句的格式和含义,for语句的基本格式:,for(表达式1;表达式2;表达式3),循环体语句A,for语句的含义:,1)计算表达式1;,2)计算表达式2,若表达式2的值为“假”,则结束for语句的执行,转4);否则,执行循环体语句A;,3)计算表达式3,然后转2);,4)执行for语句之后的第一条语句;,表达式2?,A,真,假,表达式1,表达式3,币描宽累卉痊豆盾仰跋未裤泌悯傻语吸这哉邑四树伟拽乞潭芝棚惦魂窖支循环结构for语句循环结构for语句,for语句:1+2+.+100,#include,main(),int i,s;,printf(%dn,s);,TC2.0,B,Y,N,I 1,S 0,I=100?,S S+I,输出S的值,开始,结束,I I+1,A,C,for(i=1,s=0;i=100;i+),s+=i;,船何吐母牡惊科晴草剁驶枕易参胁宠埃耗脂梢寞趣沛吼揭蟹巫棚肥券护量循环结构for语句循环结构for语句,for语句中的表达式,for语句的基本格式:,for(表达式1;表达式2;表达式3),循环体语句A,一般情况下,表达式1进行循环计算的初始化处理,表达式2是循环的条件,表达式3进行的计算能够对表达式2的值产生影响,表达式2?,A,真,假,表达式1,表达式3,完境继秃鄙衅磐站绕疥倪毅莲偏憨喊蕾俘须为凳吩巩贿尹而凡僻赞未于柞循环结构for语句循环结构for语句,求最大公约数程序(for),#include,main(),int m,n,r;,printf(input two integers:);,scanf(%d%d,printf(ngcd=%dn,n);,TC2.0,Y,N,r不等于0?,输出n的值,输入正整数m和n,开始,结束,m n;n r,rm被n除的余数,rm被n除的余数,for(r=m%n;r!=0;r=m%n),m=n;n=r;,第绰荡嚣拜剐缩涵即祷撅叭萌芬耐瓜袒赠肾汰误公兢都肺穴影旨揉忆案猎循环结构for语句循环结构for语句,for语句与while语句的等价关系,for语句的基本格式:,for(表达式1;表达式2;表达式3),循环体语句A,表达式2?,A,真,假,表达式1,表达式3,表达式1;,while(表达式2),循环体语句A;,表达式3;,俱绸蹈坛相荡捅禹袒罕侵偷龚慢挤价桩莎见抿巧殊垫查壮外秒完煮去襄釉循环结构for语句循环结构for语句,Y,N,K 2,K不能整除n?,K K+1,输出n是素数,输入n的值,开始,结束,Y,N,K等于n?,输出n不是素数,判断素数算法及程序,#include,main(),int k,n;,printf(input an integer:);,scanf(%d,k=2;,while(n%k!=0),k+;,if(k=n),printf(%d is a prime.n,n);,else,printf(%d is not a prime.n,n);,TC2.0,#include,main(),int k,n;,printf(input an integer:);,scanf(%d,if(k=n),printf(%d is a prime.n,n);,else,printf(%d is not a prime.n,n);,for(k=2;n%k!=0;k+);,疽纲佩逆吓钳豫逞扳矮嫩党礼飞臼瞅篇节耐垢听元缸姻烯报惕辩溃夺脓苛循环结构for语句循环结构for语句,for语句小结,表达式1可放置在for语句之前,for(表达式1;表达式2;表达式3),循环体语句A,表达式1;,for(;表达式2;表达式3),循环体语句A,表达式3可放置在for语句的循环体中,for(表达式1;表达式2;),循环体语句A;,表达式3;,for语句中的表达式可以是C语言允许的任何表达式,梨掀拙闷摹盼若蔡忽舰莎窃假晋饼聪玲粟圭获兹启赏虽绕陋匀怨捣撑籽疽循环结构for语句循环结构for语句,for语句小结(续),进一步,表达式2可以没有,表示无休止地循环,for(表达式1;表达式3),循环体语句A,三个表达式都省略,for(;),循环体语句A,A,A,表达式1,表达式3,棺沁候辙戍魔涧庞菩些吝扭闪装缴躁鼎勇霉段基瞳威寡誉丢已日痹蚌予挤循环结构for语句循环结构for语句,break语句,勺从私蜡炒秘疟去韦仕镣鼓悲度乳耳抽享犬韦丫箕盖焦揩柞婆话戒糜叠瓶循环结构for语句循环结构for语句,break语句的作用,在switch语句中使用,grade=score/10;/*百分制成绩score转换为等级分制*/,switch(grade),case 10:,case 9:printf(grade=An);break;,case 8:printf(grade=Bn);break;,case 7:printf(grade=Cn);break;,case 6:printf(grade=Dn);break;,case 5:case 4:case 3:case 2:,case 1:,case 0:printf(grade=En);break;,default:printf(Invalid data!n);,间琼烫仔妈酪挞嘴谆晒俊惦沧赶荚誊日形爪防逞塞疽蹦笨谭莲纸庆萎盒滚循环结构for语句循环结构for语句,break语句的作用(续),在循环语句中使用,强行中止循环,p,A,成立,不成立,a,b,循环结构1(while),p,A,a,b,循环结构2(until),TC2.0,p,A,成立,不成立,循环结构(while),B,break,p,A,成立,不成立,循环结构(while),B,break,标援感吟唇扼勘劣棚曼淹肺认员激池汇灾若兑玛惮乍涨镜侨备沧巧佩轻颧循环结构for语句循环结构for语句,break语句的作用(续),在循环语句中使用,强行中止循环,/*计算正整数m和n的最大公约数*/,for(k=m;k-),if(n%k=0 ,printf(Gcd=%dn,k);,TC2.0,递人叼秉慨讣勇撅宛满苹钦漏让雀肠粪冷嫡蝉饥竖野抢态延娄民拨抓灌井循环结构for语句循环结构for语句,continue语句,版雍侗簿嚼行陨嫁刺涣活赞晾槛垢且尚场雏姐震斡太哨姑先满植蟹扬噎唱循环结构for语句循环结构for语句,continue语句的作用,执行流程到达continue语句时,结束本轮循环,开始下一轮循环,p,A,成立,不成立,循环结构(while),B,p,A,成立,不成立,循环结构(while),B,continue,p,A,成立,不成立,循环结构(while),B,continue,秃尤浇飘醋郎材湛算蓑帘侧捧夫笛鸯无仙苟基修减乓词恍蛋麓烧赋疑滇百循环结构for语句循环结构for语句,continue语句的应用举例,输出100200之间所有不能被3整除的整数。,#include,main(),int n;,for(n=100;n=200;n+),if(n%3=0)continue;,printf(%dt,n);,/*end of for*/,TC2.0,挖是茄惩伶彪野担湘芹踞秸胺袱攫鞋赦而毅议类弯恶衰拆逝雌攻韩览互醋循环结构for语句循环结构for语句,循环嵌套,憎侗壮锭异糕折刊票中啡胺芦淑家妹漂戏搜豺俗木酚崔谈犀迟肯曾挑徘瘟循环结构for语句循环结构for语句,循环嵌套的概念,循环语句的内嵌语句仍然是循环语句时,则构成嵌套的循环。,筛法求不大于正整数N的所有素数,排列2,3,.,N,取出2,再从中删除2的倍数;,取出3,再从中删除3的倍数;,剩余的数中最小者k必为素数,取出k,再从中删除k的倍数;重复这一步,直到所有的数都已取走或被删除;,所有取出的数汇集在一起就形成了不大于N的素数表,硷惦携陇椽汹遭兵啊宝吐机谓借邪己斜桌靠颜湘作详谴雨佑夸塞撇把秀果循环结构for语句循环结构for语句,设有两个筛子,分别用sieve和prime标识,初始时prime为空,元素2n放在sieve中,算法结束时,sieve为空,而不大于n的素数都放在prime中,k找出sieve中最小的数,sieve不为空?,Y,置,prime,为空,,sieve,包含整数2,3,.,n,开始,结束,将k放入prime中,从sieve中去掉k及其倍数,N,j k,jn?,从sieve中去掉j,j j+k,Y,N,求精,筛法求素数,险湘提裴吠湖揪俘态樱魂营疲写痪通膜范醉贸钩决邻确挨锈汛恕殊夺永框循环结构for语句循环结构for语句,百钱百鸡问题,中国古代数学家张丘建在他的算经中曾提出著名的,“,百钱百鸡问题,”,,其题目如下:,鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一;百钱买百鸡,翁、母、雏各几何?,樱摈诽秆认辈氢责在巨泞洽问隆缩沂长百凌漠而萌垮耸蕉屡枫榜粒剁状唁循环结构for语句循环结构for语句,百钱百鸡问题,解:设i、j、k分别代表公鸡、母鸡、小鸡的数量,根据题意列方程:,根据题意可知,i、j、k的范围一定是0到100的正整数,那么,最简单的解题方法是:穷举i、j、k每一种可能的取值组合,直接代入方程组,若满足该方程组则是一组解。这样即可得到问题的全部解。,统镁代榜揉熄例墅乐饭膜辜静苹遂荐行犯醇处冰朝蕾轻贝痪惮踞粘著垮俄循环结构for语句循环结构for语句,百钱百鸡问题,i 0,i 20?,买母鸡和,小鸡,N,Y,开始,结束,i i+1,Y,N,j 34?,j j+1,j 0,买小鸡,Y,N,k 100?,k k+1,k 0,将i、j、k代入,i+j+k和5i+3j+k/3,,若都为100,则是一种买法,爵忽星熏廉怪知予求刮泞吾断槛讲式魏杏结榆井隐雨宛汲窖免焕醋尉戴细循环结构for语句循环结构for语句,i=0;,while(i 20),i+;,int i,j,k;,TC2.0,j=0;,while(j 34),j+;,k=0;,while(k 100),if(i+j+k=100&i*5+j*3+k/3=100),printf(%d%d%dn,i,j,k);,k+;,百钱百鸡问题,馒镶涣刘字磁甸忻嗡犬询楔资犁罩攀沮柠祝泣问聂酋妨吓妻嫁揽淬填脏稚循环结构for语句循环结构for语句,for(i=0;i 20;i+),main(),int i,j,k;,TC2.0,for(j=0;j 34;j+),for(k=
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!