資源描述:
《循環(huán)結(jié)構(gòu)程序設(shè)計ppt課件.ppt》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、第5章循環(huán)結(jié)構(gòu)設(shè)計2(1)goto語句和if語句構(gòu)成的循環(huán)結(jié)構(gòu)。(2)while語句構(gòu)成的循環(huán)結(jié)構(gòu)。(3)do-while語句構(gòu)成的循環(huán)結(jié)構(gòu)。(4)for語句構(gòu)成的循環(huán)結(jié)構(gòu)。循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)又稱重復(fù)結(jié)構(gòu),是按照一定的條件重復(fù)執(zhí)行某段語句的程序控制結(jié)構(gòu)。3while語句一般形式為:while(表達(dá)式){循環(huán)體}循環(huán)體表達(dá)式真假while語句用來構(gòu)造“當(dāng)型”循環(huán),多用于解決循環(huán)次數(shù)事先不確定的問題?!纠?.1】編程實現(xiàn)1+2+3+…+100。i=1當(dāng)i<=100sum=sum+Ii=i+1i<=100假真sum=sum+ii=i+1i=1#include"stdio.h"
2、main(){inti,sum=0;i=1;while(i<=100){sum+=i;i++;}printf("%d",sum);}循環(huán)的初始值循環(huán)的條件循環(huán)變量的增量具有唯一真值的表達(dá)式循環(huán)體5【例5.2】一個簡單的印數(shù)程序。#include"stdio.h"main(){intnumber=0;while(number<=1){number++;printf("%d",number);}}number011226#include"stdio.h"main(){intnumber=0;while(number++<=1)printf("*%d",numbe
3、r);printf("**%d",number);}【例5.3】第二個印數(shù)程序number012*101*223**3循環(huán)體的構(gòu)成不一樣有一個延時效應(yīng)while(number<=1){number++;printf("%d",number);}while(number<=1){number++;printf("%d",number);}【例1】輸入一行字符,按字母、數(shù)字和其它分成三類,分別統(tǒng)計各類字符的數(shù)目(換行符''不在統(tǒng)計范圍內(nèi))。字母的條件:c>='a'&&c<='z'c>='A'&&c<='Z'
4、
5、數(shù)字的條件:c>='0'&&c<='9'whil
6、e(ch!=''){}if(ch>='A'&&ch<='Z'
7、
8、ch<='a'&&ch<='z')z++;elseif(ch>='0'&&ch<='9')s++;elseq++;scanf("%c",&ch);charch;scanf("%c",&ch);intz=s=q=0;8【例2】輸入一正文,統(tǒng)計正文包含的行數(shù),字?jǐn)?shù)和字符數(shù)。分析:字符數(shù):對每個輸入的字符(不包含EOF)進行計數(shù)行數(shù):以''為結(jié)束標(biāo)志的一串字符,字?jǐn)?shù):假定識別符為空格字符''、換行字符''或制表字符't'對''計數(shù)標(biāo)志如果c是空格字符''、換行字符''或制表字符't',則將
9、標(biāo)志符置為0,表示c字符不在字中否則,如果標(biāo)志符為0(表示c是字的第一個字符)則將字?jǐn)?shù)加1,并修改標(biāo)志為1(表示當(dāng)前字符c是一個字中的字符)。pleaseinputn:while((c=getchar())!=EOF){++nc;if(c=='')++nl;if(c==''
10、
11、c==''
12、
13、c=='t')state=OUT;elseif(state==OUT){++nw;state=IN;}}pleaseinputn:#defineIN1#defineOUT0if(c=='')++nl;if(c==''
14、
15、c==''
16、
17、c=='t')state=OU
18、T;elseif(state==OUT){++nw;state=IN;}}pleaseinputn:#defineIN1#defineOUT0#include"stdio.h"voidmain(){intc,nl,nw,nc,state;state=OUT;nl=nw=nc=0;printf("inputatextendofctrl+z:");while((c=getchar())!=EOF){++nc;if(c=='')++nl;11【例5.6】搬磚問題。(36塊磚,36人搬;男搬4,女搬3,兩個小孩抬一磚。要求一次全搬完,問男、女、小孩各若干)設(shè)計搬磚問題的
19、程序。分析:男人(men)的可能取值范圍為:0-8;女人(women)的可能取值范圍為:0-11;對于men:men=0;while(men<=8){找出滿足題意的women,children;men++;}找每一個women下的children:children=36-women-menwomen=0;while(women<=11){找出滿足題意的children;women++;}if(4*men+3*women+children/2.0==36)#include"stdio.h"main(){intmen=0,women,chil