C語(yǔ)言程序設(shè)計(jì)第六章循環(huán)控制_第1頁(yè)
C語(yǔ)言程序設(shè)計(jì)第六章循環(huán)控制_第2頁(yè)
C語(yǔ)言程序設(shè)計(jì)第六章循環(huán)控制_第3頁(yè)
C語(yǔ)言程序設(shè)計(jì)第六章循環(huán)控制_第4頁(yè)
C語(yǔ)言程序設(shè)計(jì)第六章循環(huán)控制_第5頁(yè)
已閱讀5頁(yè),還剩34頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、主講教師:李藝主講教師:李藝1C語(yǔ)言程序設(shè)計(jì)第六章循環(huán)控制6-26-36.1 sum=1+2+3+100;for(i=1; i=100; i+) sum=sum+i;6-46.1 6-56.1 pwhile( “當(dāng)型當(dāng)型” 循環(huán))語(yǔ)句循環(huán))語(yǔ)句n格式格式n執(zhí)行過(guò)程執(zhí)行過(guò)程n功能:先判斷表達(dá)式,若為真則執(zhí)行循環(huán)體,再判斷功能:先判斷表達(dá)式,若為真則執(zhí)行循環(huán)體,再判斷表達(dá)式,重復(fù)上述過(guò)程,直到表達(dá)式為假時(shí)退出循環(huán)。表達(dá)式,重復(fù)上述過(guò)程,直到表達(dá)式為假時(shí)退出循環(huán)。 while(表達(dá)式) 循環(huán)體語(yǔ)句; 表達(dá)式語(yǔ)句0非06-66.1 p例例1: 用用 while 語(yǔ)句構(gòu)成循環(huán),求語(yǔ)句構(gòu)成循環(huán),求i 10

2、0sum=sum+i i=i+1NYi =1void main( ) int i,sum=0; i=1; while(i=100) sum=sum+i; i+; printf(%d,sum);循環(huán)條件循環(huán)體6-76.1 例2: 用 while 語(yǔ)句構(gòu)成循環(huán),顯示110的平方 void main() int i=1; while(i=10) printf(%d*%d=%dn,i,i,i*i); i+; 運(yùn)行結(jié)果: 1*1=1 2*2=4 3*3=9 4*4=16 5*5=25 6*6=36 7*7=49 8*8=64 9*9=81 10*10=1006-86.1 #include void ma

3、in( ) int n=0; printf(input a string:n); while ( getchar()!=n ) n+; printf(%d,n); getchar()!=n6-96.1 6-106.1 p習(xí)題習(xí)題6.46.4:求:求 ,(即求,(即求 1 1!+ 2+ 2!+ + 20+ + 20!)。!)。 #include void main() int i,t,sum; t=1;i=1; sum=0; while(i=20) t=t*i; sum=sum+t; i+; printf(sum=%dn,sum);運(yùn)行結(jié)果: s=2680407296-116.1 p習(xí)題習(xí)題6.

4、106.10:猴子吃桃問(wèn)題。猴子第一天摘下若干桃子,:猴子吃桃問(wèn)題。猴子第一天摘下若干桃子,當(dāng)即吃了一半多一個(gè);第二天又吃了剩下的一半多一個(gè),當(dāng)即吃了一半多一個(gè);第二天又吃了剩下的一半多一個(gè),以后每天都吃了前一天剩下的一半多一個(gè)。到第以后每天都吃了前一天剩下的一半多一個(gè)。到第1010天就天就只剩下一個(gè)桃子了。求桃子的總數(shù)是多少。只剩下一個(gè)桃子了。求桃子的總數(shù)是多少。p分析:分析:n第第1010天桃子的總數(shù)天桃子的總數(shù)sumsum1010 = 1; = 1;n第第9 9天桃子總數(shù)天桃子總數(shù)sumsum9 9 = 2 = 2* *(sum(sum1010 + 1) + 1);n第第8 8天絳子總數(shù)

5、天絳子總數(shù)sumsum8 8 = 2 = 2* *(sum(sum9 9 + 1) + 1);nn第第1 1天桃子總數(shù)天桃子總數(shù)sumsum1 1 = 2 = 2* *(sum(sum2 2 + 1). + 1).6-126.1 #include void main() int sum,day;day=9;sum=1;while(day=1)sum=2*(sum+1);day-;printf(“sum=%dn”,sum); 運(yùn)行結(jié)果: sum=15346-136.2 do-w do 循環(huán)體語(yǔ)句; while(表達(dá)式) ; 循環(huán)體語(yǔ)句循環(huán)體語(yǔ)句表達(dá)式表達(dá)式0非非06-146.2 do-w例例 用

6、用 do-while 語(yǔ)句構(gòu)成循環(huán),求語(yǔ)句構(gòu)成循環(huán),求i 100sum=sum+i i=i+1NYi =1main( ) int i,sum=0; i=1; do sum= sum+i; i+; while(i=100); printf(%d,sum);循環(huán)條件循環(huán)體6-156.2 do-wp關(guān)于關(guān)于 do-while 循環(huán)語(yǔ)句的說(shuō)明循環(huán)語(yǔ)句的說(shuō)明ndo-while 循環(huán)先執(zhí)行循環(huán)體,后判斷表達(dá)式;循環(huán)先執(zhí)行循環(huán)體,后判斷表達(dá)式; 循環(huán)體循環(huán)體至少執(zhí)行一次;至少執(zhí)行一次;n同一個(gè)問(wèn)題既可以用同一個(gè)問(wèn)題既可以用while 循環(huán)實(shí)現(xiàn),也可以用循環(huán)實(shí)現(xiàn),也可以用do-while 循環(huán),兩者可以相互轉(zhuǎn)

7、換;循環(huán),兩者可以相互轉(zhuǎn)換;n當(dāng)當(dāng)while后的表達(dá)式一開(kāi)始就為假時(shí),兩種循環(huán)結(jié)果不后的表達(dá)式一開(kāi)始就為假時(shí),兩種循環(huán)結(jié)果不同!同!6-166.3 for pfor 語(yǔ)句語(yǔ)句是是 C 語(yǔ)言和任何其他計(jì)算機(jī)語(yǔ)言中最為靈活,使用語(yǔ)言和任何其他計(jì)算機(jī)語(yǔ)言中最為靈活,使用最廣泛的循環(huán)語(yǔ)句。最廣泛的循環(huán)語(yǔ)句。p格式格式p執(zhí)行過(guò)程執(zhí)行過(guò)程 for(表達(dá)式表達(dá)式1;表達(dá)式;表達(dá)式2;表達(dá)式;表達(dá)式3) 循環(huán)體語(yǔ)句;循環(huán)體語(yǔ)句; 求解表達(dá)式求解表達(dá)式1表達(dá)式表達(dá)式2假假真真語(yǔ)句語(yǔ)句求解表達(dá)式求解表達(dá)式3for語(yǔ)句的語(yǔ)句的下一語(yǔ)句下一語(yǔ)句6-176.3 for p例例 用用 for 語(yǔ)句構(gòu)成循環(huán),求語(yǔ)句構(gòu)成循環(huán)

8、,求i 100sum=sum+iNYi=1for下面的語(yǔ)句i +main( ) int i,sum=0; for(i=1;i=100;i+) sum=sum+i; printf(%d,sum);循環(huán)步長(zhǎng)6-186.3 for p關(guān)于關(guān)于 for 循環(huán)語(yǔ)句的說(shuō)明循環(huán)語(yǔ)句的說(shuō)明nfor循環(huán)中表達(dá)式循環(huán)中表達(dá)式1,2,3均可以省略,但是分號(hào)不能省略。均可以省略,但是分號(hào)不能省略。nfor( ; ; ) 相當(dāng)于相當(dāng)于 while(1) ,即死循環(huán),即死循環(huán)運(yùn)行結(jié)果:運(yùn)行結(jié)果: a b c d e f g a b c d e f g #include void main() char c; for(;(

9、c=getchar()!=n;) printf(“%c”,c); printf(“n”); 6-196.4 循環(huán)的嵌套循環(huán)的嵌套p定義定義一個(gè)循環(huán)體內(nèi)包含另一個(gè)完整的循環(huán)結(jié)構(gòu),稱(chēng)為循環(huán)一個(gè)循環(huán)體內(nèi)包含另一個(gè)完整的循環(huán)結(jié)構(gòu),稱(chēng)為循環(huán)的嵌套。三種循環(huán)可以互相嵌套,層數(shù)不限。的嵌套。三種循環(huán)可以互相嵌套,層數(shù)不限。6-206.4 循環(huán)的嵌套循環(huán)的嵌套p循環(huán)可以互相嵌套,但不能相互交叉。循環(huán)可以互相嵌套,但不能相互交叉。 for for . . for for . . 6-216.4 循環(huán)的嵌套循環(huán)的嵌套10次5次4次5次6-226.4 循環(huán)的嵌套循環(huán)的嵌套p例題:試打印乘法九九表。例題:試打印乘法九

10、九表。 #include void main() int i,j; printf(*); for (i=1;i10;i+) printf(%4d,i); printf(n-n); for (i=1;i10;i+) printf(%d,i); for (j=1;j=i;j+) printf(%4d,i*j); printf(n); 6-236.4 循環(huán)的嵌套循環(huán)的嵌套 #include void main() int i,j,k; printf(“購(gòu)買(mǎi)雞的組合有購(gòu)買(mǎi)雞的組合有:n); for(i=0;i34;i+) for(j=0;j=50;j+) for(k=0;k=200;k+) if (3

11、*i+2*j+0.5*k=100 & i+j+k=100) printf(%4d, %4d, %4dn, i, j, k);6-246.4 循環(huán)的嵌套循環(huán)的嵌套p幾種循環(huán)的比較幾種循環(huán)的比較語(yǔ)語(yǔ) 句句適用范圍適用范圍說(shuō)說(shuō) 明明while只知道結(jié)束條件只知道結(jié)束條件而無(wú)法確定執(zhí)行而無(wú)法確定執(zhí)行次數(shù)的情況下。次數(shù)的情況下。 循環(huán)變量初始化在循環(huán)體之前循環(huán)變量初始化在循環(huán)體之前 循環(huán)體中應(yīng)包含使循環(huán)結(jié)束的語(yǔ)句循環(huán)體中應(yīng)包含使循環(huán)結(jié)束的語(yǔ)句 可以用可以用 break 和和continue 語(yǔ)句控制語(yǔ)句控制do-while至少執(zhí)行一次時(shí)至少執(zhí)行一次時(shí)ifgoto無(wú)條件循環(huán)無(wú)條件循環(huán) 該循環(huán)不能用

12、該循環(huán)不能用break 和和continue 語(yǔ)句控制語(yǔ)句控制for不知或已知執(zhí)不知或已知執(zhí)行次數(shù)都可以行次數(shù)都可以或已知初值,或已知初值,終值和步長(zhǎng)。終值和步長(zhǎng)。使用比較靈活使用比較靈活6-25exprbreak;假(0)真(非0)whilewhiledobreak;.expr假(0)真expr2break;.假(0)真(非0)forexpr1expr36-26常表常表 1 1常表常表2 2常表常表 n ndefaultdefaultcasecase 語(yǔ)句語(yǔ)句1 1break;break;語(yǔ)句語(yǔ)句2 2break;break;語(yǔ)句語(yǔ)句n nbreak;break;語(yǔ)句語(yǔ)句break;brea

13、k;switchswitch表達(dá)式表達(dá)式6-27p例例 break舉例:輸出圓面積,面積大于舉例:輸出圓面積,面積大于100時(shí)停止時(shí)停止void main( ) int r ; float area; for(r=1;r100) break; printf(r=%d,area=%f,r,area); 使用使用break跳出跳出整個(gè)循環(huán)整個(gè)循環(huán)r 10area=3.14*r*rNYi +for循環(huán)下面的語(yǔ)句area100NYr =16-28p例例 break舉例:小寫(xiě)字母轉(zhuǎn)換成大寫(xiě)字母舉例:小寫(xiě)字母轉(zhuǎn)換成大寫(xiě)字母,直至輸入非字直至輸入非字母字符母字符 #include void main() i

14、nt i,j; char c; while(1) c=getchar();if (c=a & c=z) putchar(c-a+A); else break; 6-29n功能:功能:結(jié)束本次循環(huán),跳過(guò)循環(huán)體中尚未執(zhí)行的語(yǔ)句,結(jié)束本次循環(huán),跳過(guò)循環(huán)體中尚未執(zhí)行的語(yǔ)句,進(jìn)行下一次是否執(zhí)行循環(huán)體的判斷。進(jìn)行下一次是否執(zhí)行循環(huán)體的判斷。continue 語(yǔ)句語(yǔ)句僅僅用于循環(huán)語(yǔ)句中。用于循環(huán)語(yǔ)句中。while真(非0)expr假(0)continue;.doexprcontinue;假(0)真(非0)while表達(dá)式表達(dá)式2continue;.假假(0)真真(非非0)表達(dá)式表達(dá)式1表達(dá)式表達(dá)式3

15、for跳出循環(huán)體,但是跳出循環(huán)體,但是expr3必須執(zhí)行必須執(zhí)行6-30pcontinue舉例:把舉例:把100200之間的不能被之間的不能被3整除的數(shù)輸出整除的數(shù)輸出6-31ncontinue 語(yǔ)句只結(jié)束本次循環(huán),語(yǔ)句只結(jié)束本次循環(huán),break語(yǔ)句則是結(jié)束語(yǔ)句則是結(jié)束整個(gè)循環(huán)。整個(gè)循環(huán)。ncontinue 語(yǔ)句只用于語(yǔ)句只用于while,do-while,for循環(huán)語(yǔ)句中,循環(huán)語(yǔ)句中,break語(yǔ)句還可以用于語(yǔ)句還可以用于switch語(yǔ)句中。語(yǔ)句中。6-32p例例1:用:用/4 = 1 - 1/3 + 1/5 1/7 + 公式求公式求的近似值。的近似值。p分析:分析:t=1,pi=1,n=1

16、.0,s=1當(dāng)當(dāng)|t| 1e-6n=n+2s=-st=s/npi=pi+tpi=pi*4輸出輸出pi符號(hào):符號(hào):1,-1,1,-1分母:分母:1,3,5,7,.= (1 1/3 + 1/5 -1/7 +)*46-33#include #include void main() int s; float n,t,pi; t=1; pi=0; n=1; s=1; while(fabs(t)=1e-6) pi=pi+t; n=n+2; s= -s; t=s/n; pi=pi*4; printf(pi=%10.6fn,pi); 運(yùn)行結(jié)果:運(yùn)行結(jié)果: pi = 3.141594循環(huán)結(jié)束條件累加項(xiàng) 分母符號(hào)

17、最終值6-34p例例2 求輸入的十個(gè)整數(shù)中正數(shù)的和及其平均值求輸入的十個(gè)整數(shù)中正數(shù)的和及其平均值#include void main() int i,num=0,a; float sum=0; for(i=0;i10;i+) scanf(%d,&a);if(a=0) continue;num+;sum+=a; printf(%d plus integers sum :%6.0fn,num,sum); printf(Mean value:%6.2fn,sum/num);6-35153423315971094675025514229352457824157817185537725841771112139383204057028873908816921389610418128657196418134626992274656324598632114

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論