C語言程序設(shè)計課件:第5章 循環(huán)結(jié)構(gòu)程序設(shè)計
《C語言程序設(shè)計課件:第5章 循環(huán)結(jié)構(gòu)程序設(shè)計》由會員分享,可在線閱讀,更多相關(guān)《C語言程序設(shè)計課件:第5章 循環(huán)結(jié)構(gòu)程序設(shè)計(26頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、第5章循環(huán)結(jié)構(gòu)程序設(shè)計思考思考求求1100的累加和。的累加和。分析分析換一種思路:換一種思路:sum=1+2+100;首先設(shè)置一個累計器首先設(shè)置一個累計器sum,其初值為,其初值為0,利用,利用sum += n來計算(來計算(n依次取依次取1、2、100),),只要解決以下只要解決以下3個問題即可:個問題即可: (1)將)將n的初值置為的初值置為1; (2)每執(zhí)行)每執(zhí)行1次次“sum += n;”后,后,n增增1; (3)當)當n增到增到101時,停止計算。此時,時,停止計算。此時,sum的值就是的值就是1100的累計和。的累計和。sum=sum+n;一、一、goto語句語句二、二、whil
2、e語句語句三、三、do-while語句語句四、四、for語句語句五、五、break、continue語句語句六、幾種循環(huán)的比較六、幾種循環(huán)的比較主要內(nèi)容主要內(nèi)容格式格式goto 語句標號語句標號說明說明(1) 與與if 語句一起構(gòu)成循環(huán)結(jié)構(gòu)。語句一起構(gòu)成循環(huán)結(jié)構(gòu)。(2) 不符合結(jié)構(gòu)化程序設(shè)計原則,一般不用。不符合結(jié)構(gòu)化程序設(shè)計原則,一般不用。#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),實現(xiàn)求語句與分語句配合構(gòu)成循環(huán)結(jié)構(gòu),實現(xiàn)求1100的累加和。的累加和。作用:使系統(tǒng)轉(zhuǎn)向標號所在的語句行執(zhí)行。作用:使系統(tǒng)轉(zhuǎn)向標號所在的語句行執(zhí)行。標號的定名規(guī)則標號的定名規(guī)則與變量名相同。與變量名相同。一、一、goto語句語句格式格式while (表達式表達式) 循環(huán)體語句循環(huán)體語句 說明說明1. 循環(huán)體循環(huán)體如果包含一個以上的語句,必須使用復(fù)合語句形式。如果包含一個以上的語句,必須使用復(fù)合語句形式。2. 在在循環(huán)體中,必須有使循環(huán)條件趨向于不滿足(假)的語句。循環(huán)體中,必須有使循環(huán)條件趨向于不滿足(假)的語句。3. 先先判斷表達式,后執(zhí)行語句。判斷表達式,后執(zhí)行語句。
4、?含義含義當表達式為真(非當表達式為真(非0值)時,執(zhí)行值)時,執(zhí)行while語句中的內(nèi)嵌語句。語句中的內(nèi)嵌語句。執(zhí)行執(zhí)行過程過程表達式表達式循環(huán)體語句循環(huán)體語句假假 真真 循環(huán)體語句循環(huán)體語句當表達式值為真當表達式值為真N-S圖表示圖表示二、二、while語句語句sum= 55舉例舉例求求110的累加和。的累加和。 i=1 sum=0當當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 (表達式表達式);說明說明1. 循環(huán)體循環(huán)體如果包含一個以上的語句,必須使用復(fù)合語句形式。如果包含一個以上的語句,必須使用復(fù)合語句形式。2. 在在循環(huán)體中,必須有使循環(huán)條件趨向于不滿足(假)的語句。循環(huán)體中,必須有使
6、循環(huán)條件趨向于不滿足(假)的語句。3. 先先執(zhí)行循環(huán)體語句,后判斷表達式的值。執(zhí)行循環(huán)體語句,后判斷表達式的值。 ?含義含義執(zhí)行執(zhí)行do-while語句中的內(nèi)嵌語句,直到表達式為假(語句中的內(nèi)嵌語句,直到表達式為假(0)才跳出循環(huán)。)才跳出循環(huán)。執(zhí)行執(zhí)行過程過程表達式表達式循環(huán)體語句循環(huán)體語句假假真真循環(huán)體語句循環(huán)體語句當表達式值為真當表達式值為真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當當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 (表達式表達式1;表達式;表達式2;表達式;表達式3) 語句語句 f
9、or (循環(huán)變量賦初值;循環(huán)條件;循環(huán)變量增值循環(huán)變量賦初值;循環(huán)條件;循環(huán)變量增值) 語句語句 執(zhí)行執(zhí)行過程過程(1)先求解表達式先求解表達式1;(2)求解表達式求解表達式2,若其值為真,則,若其值為真,則 執(zhí)行循環(huán)體語句,然后執(zhí)行第(執(zhí)行循環(huán)體語句,然后執(zhí)行第(3)步;)步;若為假,則結(jié)束循環(huán),轉(zhuǎn)到第(若為假,則結(jié)束循環(huán),轉(zhuǎn)到第(5)步;)步;(3)求解表達式求解表達式3;(4)轉(zhuǎn)向步驟(轉(zhuǎn)向步驟(2););(5)循環(huán)結(jié)束,執(zhí)行循環(huán)結(jié)束,執(zhí)行for語句下面的一語句下面的一個語句。個語句。表達式表達式2循環(huán)體語句循環(huán)體語句假假 真真求解表達式求解表達式1求解表達式求解表達式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 (表達式表達式1;表達式;表達式2;表達式;表達式3) 語句語句 說明說明三個表達式都可三個表達式都可以省略。以省略。表達式表達式2循環(huán)體語句循環(huán)體語
11、句假假 真真求解表達式求解表達式3表達式表達式1省略省略循環(huán)體語句循環(huán)體語句求解表達式求解表達式1求解表達式求解表達式3表達式表達式2省略省略表達式表達式2循環(huán)體語句循環(huán)體語句假假 真真求解表達式求解表達式1表達式表達式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; 表達式表達式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表達式表達式1和表達式和表達式3可以是可以是與循環(huán)變量無關(guān)的表達式。與循環(huán)變量無關(guān)的表達式。for( ;i=10 ; ) sum=sum+i; i+; 7表達式表達式2一般是關(guān)系表達式,也一般是關(guān)系表達式,也可以是數(shù)值或字符表達式??梢允菙?shù)值或字符表達式。while(i=10) sum=sum+i; i+ ; while (1) sum=sum+i; 表達式表達式1和表達式和表達式3可以同時省略,此可以同時省略,此
13、時等同于時等同于while語句。語句。for(sum=0,i=1;i=100,i+) sum=sum+i; 例例建議:建議:for語句中只放與語句中只放與循環(huán)控制有關(guān)的語句。循環(huán)控制有關(guān)的語句。四、四、for語句語句格式格式while (表達式表達式1) if (表達式表達式2) break; 舉例舉例 . sum=0; for (i=1;i5) break; sum=sum+i; printf(“sum=%5dn”,sum); .while (表達式表達式1) if (表達式表達式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)問題時,一般可以三種循環(huán)語句在處理循環(huán)問題時,一般可以相互替代。相互替代。2. 對于循環(huán)次數(shù)固定的問題,用對于循環(huán)次數(shù)固定的問題,用for語句實現(xiàn)比語句實現(xiàn)比較簡單。較簡單。3. 對于循環(huán)次數(shù)不確定的問題,可用對于循環(huán)次數(shù)不確定的問題,可用while語語句或句或do-while語句實現(xiàn)。語句實現(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+求求 的近似值,直到某一項的絕對值小于的近似值,直到某一項的絕對值小于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是否為素是否為素數(shù)。數(shù)。素數(shù)(質(zhì)數(shù))素數(shù)(質(zhì)數(shù)):
20、只能被只能被1和它本身整除的數(shù)。和它本身整除的數(shù)。判別方法:判別方法:57:若:若256之間的每一個數(shù)都除不開之間的每一個數(shù)都除不開56,則,則56為素數(shù),否則為素數(shù),否則56不是素數(shù)。不是素數(shù)。m, k=m-1,i=2k :若每一個若每一個 i 的值都除不開的值都除不開m,則則m為素數(shù),否則為素數(shù),否則m不是素數(shù)。不是素數(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之間的全部素數(shù)。之間的全部素數(shù)。for m=101 to 200判斷判斷m是否為素數(shù)是否為素數(shù)若若m是素數(shù),則輸是素數(shù),則輸出并統(tǒng)計個數(shù)出并統(tǒng)計個數(shù)n.每輸出每輸出10個個素數(shù),素數(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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 6.煤礦安全生產(chǎn)科普知識競賽題含答案
- 2.煤礦爆破工技能鑒定試題含答案
- 3.爆破工培訓(xùn)考試試題含答案
- 2.煤礦安全監(jiān)察人員模擬考試題庫試卷含答案
- 3.金屬非金屬礦山安全管理人員(地下礦山)安全生產(chǎn)模擬考試題庫試卷含答案
- 4.煤礦特種作業(yè)人員井下電鉗工模擬考試題庫試卷含答案
- 1 煤礦安全生產(chǎn)及管理知識測試題庫及答案
- 2 各種煤礦安全考試試題含答案
- 1 煤礦安全檢查考試題
- 1 井下放炮員練習題含答案
- 2煤礦安全監(jiān)測工種技術(shù)比武題庫含解析
- 1 礦山應(yīng)急救援安全知識競賽試題
- 1 礦井泵工考試練習題含答案
- 2煤礦爆破工考試復(fù)習題含答案
- 1 各種煤礦安全考試試題含答案