C語言程序設(shè)計(jì)課件:第5章 循環(huán)結(jié)構(gòu)程序設(shè)計(jì)
《C語言程序設(shè)計(jì)課件:第5章 循環(huán)結(jié)構(gòu)程序設(shè)計(jì)》由會員分享,可在線閱讀,更多相關(guān)《C語言程序設(shè)計(jì)課件:第5章 循環(huán)結(jié)構(gòu)程序設(shè)計(jì)(26頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
1、第5章循環(huán)結(jié)構(gòu)程序設(shè)計(jì)思考思考求求1100的累加和。的累加和。分析分析換一種思路:換一種思路:sum=1+2+100;首先設(shè)置一個累計(jì)器首先設(shè)置一個累計(jì)器sum,其初值為,其初值為0,利用,利用sum += n來計(jì)算(來計(jì)算(n依次取依次取1、2、100),),只要解決以下只要解決以下3個問題即可:個問題即可: (1)將)將n的初值置為的初值置為1; (2)每執(zhí)行)每執(zhí)行1次次“sum += n;”后,后,n增增1; (3)當(dāng))當(dāng)n增到增到101時(shí),停止計(jì)算。此時(shí),時(shí),停止計(jì)算。此時(shí),sum的值就是的值就是1100的累計(jì)和。的累計(jì)和。sum=sum+n;一、一、goto語句語句二、二、whil
2、e語句語句三、三、do-while語句語句四、四、for語句語句五、五、break、continue語句語句六、幾種循環(huán)的比較六、幾種循環(huán)的比較主要內(nèi)容主要內(nèi)容格式格式goto 語句標(biāo)號語句標(biāo)號說明說明(1) 與與if 語句一起構(gòu)成循環(huán)結(jié)構(gòu)。語句一起構(gòu)成循環(huán)結(jié)構(gòu)。(2) 不符合結(jié)構(gòu)化程序設(shè)計(jì)原則,一般不用。不符合結(jié)構(gòu)化程序設(shè)計(jì)原則,一般不用。#include int main() int n=1, sum=0; loop: sum += n; n+; if (n=100) goto loop; printf(“sum=%dn”, sum); return 0; 舉例舉例使用使用goto語句與分
3、語句配合構(gòu)成循環(huán)結(jié)構(gòu),實(shí)現(xiàn)求語句與分語句配合構(gòu)成循環(huán)結(jié)構(gòu),實(shí)現(xiàn)求1100的累加和。的累加和。作用:使系統(tǒng)轉(zhuǎn)向標(biāo)號所在的語句行執(zhí)行。作用:使系統(tǒng)轉(zhuǎn)向標(biāo)號所在的語句行執(zhí)行。標(biāo)號的定名規(guī)則標(biāo)號的定名規(guī)則與變量名相同。與變量名相同。一、一、goto語句語句格式格式while (表達(dá)式表達(dá)式) 循環(huán)體語句循環(huán)體語句 說明說明1. 循環(huán)體循環(huán)體如果包含一個以上的語句,必須使用復(fù)合語句形式。如果包含一個以上的語句,必須使用復(fù)合語句形式。2. 在在循環(huán)體中,必須有使循環(huán)條件趨向于不滿足(假)的語句。循環(huán)體中,必須有使循環(huán)條件趨向于不滿足(假)的語句。3. 先先判斷表達(dá)式,后執(zhí)行語句。判斷表達(dá)式,后執(zhí)行語句。
4、?含義含義當(dāng)表達(dá)式為真(非當(dāng)表達(dá)式為真(非0值)時(shí),執(zhí)行值)時(shí),執(zhí)行while語句中的內(nèi)嵌語句。語句中的內(nèi)嵌語句。執(zhí)行執(zhí)行過程過程表達(dá)式表達(dá)式循環(huán)體語句循環(huán)體語句假假 真真 循環(huán)體語句循環(huán)體語句當(dāng)表達(dá)式值為真當(dāng)表達(dá)式值為真N-S圖表示圖表示二、二、while語句語句sum= 55舉例舉例求求110的累加和。的累加和。 i=1 sum=0當(dāng)當(dāng)i=10sum=sum+ii+輸出輸出suminclude int main() int i,sum; i=1; sum=0; while (i=10) sum=sum+i; i+; printf(“sum=%5dn”,sum); return 0;思考思考
5、1. 如果如果去掉循環(huán)體中的大括號,執(zhí)行過程將會怎樣變化?去掉循環(huán)體中的大括號,執(zhí)行過程將會怎樣變化?2. 在在循環(huán)體中,使循環(huán)條件趨向于不滿足(假)的語句是哪條?循環(huán)體中,使循環(huán)條件趨向于不滿足(假)的語句是哪條??1 求求15的累加和的累加和.2 求求110的奇數(shù)和的奇數(shù)和.3 求求110的偶數(shù)和的偶數(shù)和.二、二、while語句語句格式格式do 循環(huán)體語句循環(huán)體語句while (表達(dá)式表達(dá)式);說明說明1. 循環(huán)體循環(huán)體如果包含一個以上的語句,必須使用復(fù)合語句形式。如果包含一個以上的語句,必須使用復(fù)合語句形式。2. 在在循環(huán)體中,必須有使循環(huán)條件趨向于不滿足(假)的語句。循環(huán)體中,必須有使
6、循環(huán)條件趨向于不滿足(假)的語句。3. 先先執(zhí)行循環(huán)體語句,后判斷表達(dá)式的值。執(zhí)行循環(huán)體語句,后判斷表達(dá)式的值。 ?含義含義執(zhí)行執(zhí)行do-while語句中的內(nèi)嵌語句,直到表達(dá)式為假(語句中的內(nèi)嵌語句,直到表達(dá)式為假(0)才跳出循環(huán)。)才跳出循環(huán)。執(zhí)行執(zhí)行過程過程表達(dá)式表達(dá)式循環(huán)體語句循環(huán)體語句假假真真循環(huán)體語句循環(huán)體語句當(dāng)表達(dá)式值為真當(dāng)表達(dá)式值為真N-S圖表示圖表示至少執(zhí)至少執(zhí)行一次行一次三、三、do-while語句語句sum= 55舉例舉例求求110的累加和。的累加和。 include int main() int i,sum; i=1; sum=0; do sum=sum+i; i+; w
7、hile (i=10); printf(“sum=%5dn”,sum); return 0;i=1 sum=0當(dāng)當(dāng)i10)輸出輸出sumsum=sum+ii+思考思考1. 如果如果去掉循環(huán)體中的大括號,執(zhí)行過程將會怎樣變化?去掉循環(huán)體中的大括號,執(zhí)行過程將會怎樣變化?2. 在在循環(huán)體中,使循環(huán)條件趨向于不滿足(假)的語句是哪條?循環(huán)體中,使循環(huán)條件趨向于不滿足(假)的語句是哪條?三、三、do-while語句語句舉例舉例while和和do-while循環(huán)的比較。循環(huán)的比較。 include int main() int i,sum; scanf(“%d”,&i); while(i=10) sum
8、=sum+i; i+; printf(“sum=%dn”,sum); return 0;include int main() int i,sum; scanf(“%d”,&i); do sum=sum+i; i+; while(i=10) printf(“sum=%dn”,sum); return 0;輸入:輸入:1 輸入:輸入:11 sum=55輸出:輸出:sum=55sum=0輸出:輸出:sum=11此程序此程序的功能?的功能?什么情況下兩什么情況下兩者結(jié)果相同?者結(jié)果相同?三、三、do-while語句語句格式格式for (表達(dá)式表達(dá)式1;表達(dá)式;表達(dá)式2;表達(dá)式;表達(dá)式3) 語句語句 f
9、or (循環(huán)變量賦初值;循環(huán)條件;循環(huán)變量增值循環(huán)變量賦初值;循環(huán)條件;循環(huán)變量增值) 語句語句 執(zhí)行執(zhí)行過程過程(1)先求解表達(dá)式先求解表達(dá)式1;(2)求解表達(dá)式求解表達(dá)式2,若其值為真,則,若其值為真,則 執(zhí)行循環(huán)體語句,然后執(zhí)行第(執(zhí)行循環(huán)體語句,然后執(zhí)行第(3)步;)步;若為假,則結(jié)束循環(huán),轉(zhuǎn)到第(若為假,則結(jié)束循環(huán),轉(zhuǎn)到第(5)步;)步;(3)求解表達(dá)式求解表達(dá)式3;(4)轉(zhuǎn)向步驟(轉(zhuǎn)向步驟(2););(5)循環(huán)結(jié)束,執(zhí)行循環(huán)結(jié)束,執(zhí)行for語句下面的一語句下面的一個語句。個語句。表達(dá)式表達(dá)式2循環(huán)體語句循環(huán)體語句假假 真真求解表達(dá)式求解表達(dá)式1求解表達(dá)式求解表達(dá)式3四、四、for語
10、句語句sum= 55舉例舉例求求110的累加和。的累加和。 sum=0for i=1 to10sum=sum+i輸出輸出suminclude int main() int i,sum; sum=0; for (i=1;i=10;i+) sum=sum+i; printf(“sum=%5dn”,sum); return 0;?1 求求15的累加和的累加和.2 求求110的奇數(shù)和的奇數(shù)和.3 求求110的偶數(shù)和的偶數(shù)和.四、四、for語句語句for (表達(dá)式表達(dá)式1;表達(dá)式;表達(dá)式2;表達(dá)式;表達(dá)式3) 語句語句 說明說明三個表達(dá)式都可三個表達(dá)式都可以省略。以省略。表達(dá)式表達(dá)式2循環(huán)體語句循環(huán)體語
11、句假假 真真求解表達(dá)式求解表達(dá)式3表達(dá)式表達(dá)式1省略省略循環(huán)體語句循環(huán)體語句求解表達(dá)式求解表達(dá)式1求解表達(dá)式求解表達(dá)式3表達(dá)式表達(dá)式2省略省略表達(dá)式表達(dá)式2循環(huán)體語句循環(huán)體語句假假 真真求解表達(dá)式求解表達(dá)式1表達(dá)式表達(dá)式3省略省略四、四、for語句語句說明說明1i=1;for(; i=10;i+) sum=sum+i; 2for (i=1; ;i+) sum=sum+i; ?3for (i=1;i=10 ;) sum=sum+i; i+; for(i=1; i=10;i+) sum=sum+i; 表達(dá)式表達(dá)式1可以省略,可以省略,但其后的分號不可但其后的分號不可以省略。以省略。沒有循環(huán)結(jié)沒有循
12、環(huán)結(jié)束條件,構(gòu)束條件,構(gòu)成了死循環(huán)成了死循環(huán)for(i=1; i=10;i+) sum=sum+i; 四、四、for語句語句說明說明45for( ; ; ) sum=sum+i; 6表達(dá)式表達(dá)式1和表達(dá)式和表達(dá)式3可以是可以是與循環(huán)變量無關(guān)的表達(dá)式。與循環(huán)變量無關(guān)的表達(dá)式。for( ;i=10 ; ) sum=sum+i; i+; 7表達(dá)式表達(dá)式2一般是關(guān)系表達(dá)式,也一般是關(guān)系表達(dá)式,也可以是數(shù)值或字符表達(dá)式??梢允菙?shù)值或字符表達(dá)式。while(i=10) sum=sum+i; i+ ; while (1) sum=sum+i; 表達(dá)式表達(dá)式1和表達(dá)式和表達(dá)式3可以同時(shí)省略,此可以同時(shí)省略,此
13、時(shí)等同于時(shí)等同于while語句。語句。for(sum=0,i=1;i=100,i+) sum=sum+i; 例例建議:建議:for語句中只放與語句中只放與循環(huán)控制有關(guān)的語句。循環(huán)控制有關(guān)的語句。四、四、for語句語句格式格式while (表達(dá)式表達(dá)式1) if (表達(dá)式表達(dá)式2) break; 舉例舉例 . sum=0; for (i=1;i5) break; sum=sum+i; printf(“sum=%5dn”,sum); .while (表達(dá)式表達(dá)式1) if (表達(dá)式表達(dá)式2) conitue; 結(jié)束整個結(jié)束整個循環(huán)循環(huán)結(jié)束本次結(jié)束本次循環(huán)循環(huán) . sum=0; for (i=1;i
14、=10;i+) if (i=5) continue; sum=sum+i; printf(“sum=%5dn”,sum); .五、五、breakcontinue語句語句說明說明1. 三種循環(huán)語句在處理循環(huán)問題時(shí),一般可以三種循環(huán)語句在處理循環(huán)問題時(shí),一般可以相互替代。相互替代。2. 對于循環(huán)次數(shù)固定的問題,用對于循環(huán)次數(shù)固定的問題,用for語句實(shí)現(xiàn)比語句實(shí)現(xiàn)比較簡單。較簡單。3. 對于循環(huán)次數(shù)不確定的問題,可用對于循環(huán)次數(shù)不確定的問題,可用while語語句或句或do-while語句實(shí)現(xiàn)。語句實(shí)現(xiàn)。4. while語句語句:先判斷,后執(zhí)行。先判斷,后執(zhí)行。 do-while語句:先執(zhí)行,后判斷。
15、語句:先執(zhí)行,后判斷。六、幾種循環(huán)語句的比較六、幾種循環(huán)語句的比較概念概念一個循環(huán)體內(nèi)又包含另一個完整的循環(huán)結(jié)構(gòu),稱為循環(huán)嵌套。一個循環(huán)體內(nèi)又包含另一個完整的循環(huán)結(jié)構(gòu),稱為循環(huán)嵌套。 1 2 3 4 2 4 6 8 3 6 9 12 4 8 12 16舉例舉例打印乘法口訣表。打印乘法口訣表。 #include int main() int i,j; for (i=1;i=4;i+) for (j=1;j=4;j+) printf(“%4d”,i*j); printf(“n”); return 0;i=1, j=1 1*1 j=2 1*2 j=3 1*3 j=4 1*4i=2, j=1 2*1
16、j=2 i=3i=4for i=1 to 4輸出輸出i*jfor j=1 to 4換行換行七、循環(huán)嵌套七、循環(huán)嵌套 1 2 4 3 6 9 4 8 12 16#include int main() int i,j; for (i=1;i=4;i+) for (j=1;j=i;j+) printf(“%4d”,i*j); printf(“n”); return 0;(一)循環(huán)嵌套(一)循環(huán)嵌套思考思考1#include int main() int i,j; for (i=1;i=4;i+) for (j=1;j=5-i;j+) printf(“%4d”,i*j); printf(“n”); r
17、eturn 0;(一)循環(huán)嵌套(一)循環(huán)嵌套思考思考2 1 2 3 4 2 4 6 3 6 4#include int main() int i,j; for (i=1;i=4;i+) for (j=1;j=4-i;j+) printf(“ ” ); for (j=5-i;j=4;j+) printf(“%4d”,i*j); printf(“n”); return 0;(一)循環(huán)嵌套(一)循環(huán)嵌套思考思考3 4 6 8 6 9 12 4 8 12 16#include int main() int i,j; for (i=1;i=4;i+) for (j=1;j=i-1;j+) printf(
18、“ ” ); for (j=i;j=4;j+) printf(“%4d”,i*j); printf(“n”); return 0;(一)循環(huán)嵌套(一)循環(huán)嵌套思考思考4 1 2 3 4 4 6 8 9 12 16例例1利用公式:利用公式:/4=1-1/3+1/5-1/7+求求 的近似值,直到某一項(xiàng)的絕對值小于的近似值,直到某一項(xiàng)的絕對值小于10-6為止。為止。#include #include int main() int s; float n,t,pi; t=1;pi=0;n=1.0;s=1; while(fabs(t)1e-6) pi=pi+t; n=n+2; s=-s; t=s/n; p
19、i=pi*4; printf(pi=%10.6fn,pi); return 0; 思考:使思考:使用那一種用那一種循環(huán)控制循環(huán)控制語句?語句?(二)(二)程序舉例程序舉例pi=1-1/3+輸出輸出4* pis=1(-1)n=1,3,5,7t=s/n例例2求求Fibonacci數(shù)列的前數(shù)列的前40個數(shù)。個數(shù)。#include int main() long int f1,f2; int i; f1=1;f2=1; for(i=1;i=3) 1 1 2 3 5 8 13 21 34 55 89 144 (二)(二)程序舉例程序舉例例例3判斷判斷m是否為素是否為素?cái)?shù)。數(shù)。素?cái)?shù)(質(zhì)數(shù))素?cái)?shù)(質(zhì)數(shù)):
20、只能被只能被1和它本身整除的數(shù)。和它本身整除的數(shù)。判別方法:判別方法:57:若:若256之間的每一個數(shù)都除不開之間的每一個數(shù)都除不開56,則,則56為素?cái)?shù),否則為素?cái)?shù),否則56不是素?cái)?shù)。不是素?cái)?shù)。m, k=m-1,i=2k :若每一個若每一個 i 的值都除不開的值都除不開m,則則m為素?cái)?shù),否則為素?cái)?shù),否則m不是素?cái)?shù)。不是素?cái)?shù)。flag=1;k=sqrt(m);for (i=2;i=k;i+) if (m%i=0) flag=0;if (flag=1) printf(“yes!”);else printf(“no!”);k=sqrt(m);for (i=2;i=k+1) printf(“yes!
21、”);else printf(“no!”);k=m-1;k=m/2;(m+1)/2;k=sqrt(m);sqrt(m+1)(二)(二)程序舉例程序舉例例例3輸出輸出 101200之間的全部素?cái)?shù)。之間的全部素?cái)?shù)。for m=101 to 200判斷判斷m是否為素?cái)?shù)是否為素?cái)?shù)若若m是素?cái)?shù),則輸是素?cái)?shù),則輸出并統(tǒng)計(jì)個數(shù)出并統(tǒng)計(jì)個數(shù)n.每輸出每輸出10個個素?cái)?shù),素?cái)?shù),換行換行#include #include int main() int m,k,i,n=0; for(m=101;m=200;m=m+2) k=sqrt(m); for(i=2;i=k+1) printf(%d ,m); n=n+1; if(n%10=0) printf(n); printf(n); return 0;(二)(二)程序舉例程序舉例例例4譯密碼。輸入一行字符,輸出其相應(yīng)的密碼。譯密碼。輸入一行字符,輸出其相應(yīng)的密碼。譯碼規(guī)律:將字母變成其后的第譯碼規(guī)律:將字母變成其后的第4個字母,非字母字符不變。個字母,非字母字符不變。#include int main() char c; while(c=getchar()!=n) if(ca&cA&cZ&cz) c=c-26; printf(%cn,c); return 0;(二)(二)程序舉例程序舉例
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 艾瑞咨詢:XXXX年電子商務(wù)行業(yè)回顧及趨勢解讀
- 課件 (10)(教育精品)
- 說課分?jǐn)?shù)的簡單計(jì)算(教育精品)
- 《20 它們都是鳥》課件1
- 專題八動態(tài)電路分析優(yōu)秀PPT
- (人教版)一年級語文上冊課件_a_o_e
- 九年級上半期考復(fù)習(xí)(精品)
- 《海燕》課件(定)(教育精品)
- 五年級數(shù)學(xué)上冊第一課時(shí)課件(教育精品)
- 帕金森病講義課件
- 聲母y、w和整體認(rèn)讀音節(jié)課件
- 中考?xì)v史總復(fù)習(xí) 模塊一 中國古代史 第一單元 中華文明的起源、國家的產(chǎn)生和社會的發(fā)展課時(shí)提升課件 (45)
- 中考新型簡答題的技巧(精品)
- 一 汽車維修常用方法與技巧
- 護(hù)士年終個人工作總結(jié)課件