




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第5章循環(huán)結(jié)構(gòu)程序設(shè)計(jì)思考求1100的累加和。分析換一種思路:sum=1+2+100;首先設(shè)置一個累計(jì)器sum,其初值為0,利用sum += n來計(jì)算(n依次取1、2、100),只要解決以下3個問題即可: (1)將n的初值置為1; (2)每執(zhí)行1次“sum += n;”后,n增1; (3)當(dāng)n增到101時,停止計(jì)算。此時,sum的值就是1100的累計(jì)和。sum=sum+n;一、goto語句二、while語句三、do-while語句四、for語句五、break、continue語句六、幾種循環(huán)的比較主要內(nèi)容格式goto 語句標(biāo)號說明(1) 與if 語句一起構(gòu)成循環(huán)結(jié)構(gòu)。(2) 不符合結(jié)構(gòu)化程序設(shè)
2、計(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語句與分語句配合構(gòu)成循環(huán)結(jié)構(gòu),實(shí)現(xiàn)求1100的累加和。作用:使系統(tǒng)轉(zhuǎn)向標(biāo)號所在的語句行執(zhí)行。標(biāo)號的定名規(guī)則與變量名相同。一、goto語句格式while (表達(dá)式) 循環(huán)體語句 說明1. 循環(huán)體如果包含一個以上的語句,必須使用復(fù)合語句形式。2. 在循環(huán)體中,必須有使循環(huán)條件趨向于不滿足(假)的語句。3. 先判斷表達(dá)式,后執(zhí)行語句。 ?含義當(dāng)表
3、達(dá)式為真(非0值)時,執(zhí)行while語句中的內(nèi)嵌語句。執(zhí)行過程表達(dá)式循環(huán)體語句假 真 循環(huán)體語句當(dāng)表達(dá)式值為真N-S圖表示二、while語句sum= 55舉例求110的累加和。 i=1 sum=0當(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;思考1. 如果去掉循環(huán)體中的大括號,執(zhí)行過程將會怎樣變化?2. 在循環(huán)體中,使循環(huán)條件趨向于不滿足(假)的語句是哪條??1 求15的累加和.2 求110的奇
4、數(shù)和.3 求110的偶數(shù)和.二、while語句格式do 循環(huán)體語句while (表達(dá)式);說明1. 循環(huán)體如果包含一個以上的語句,必須使用復(fù)合語句形式。2. 在循環(huán)體中,必須有使循環(huán)條件趨向于不滿足(假)的語句。3. 先執(zhí)行循環(huán)體語句,后判斷表達(dá)式的值。 ?含義執(zhí)行do-while語句中的內(nèi)嵌語句,直到表達(dá)式為假(0)才跳出循環(huán)。執(zhí)行過程表達(dá)式循環(huán)體語句假真循環(huán)體語句當(dāng)表達(dá)式值為真N-S圖表示至少執(zhí)行一次三、do-while語句sum= 55舉例求110的累加和。 include int main() int i,sum; i=1; sum=0; do sum=sum+i; i+; while
5、 (i=10); printf(“sum=%5dn”,sum); return 0;i=1 sum=0當(dāng)i10)輸出sumsum=sum+ii+思考1. 如果去掉循環(huán)體中的大括號,執(zhí)行過程將會怎樣變化?2. 在循環(huán)體中,使循環(huán)條件趨向于不滿足(假)的語句是哪條?三、do-while語句舉例while和do-while循環(huán)的比較。 include int main() int i,sum; scanf(“%d”,&i); while(i=10) sum=sum+i; i+; printf(“sum=%dn”,sum); return 0;include int main() int i,sum;
6、 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é)果相同?三、do-while語句格式for (表達(dá)式1;表達(dá)式2;表達(dá)式3) 語句 for (循環(huán)變量賦初值;循環(huán)條件;循環(huán)變量增值) 語句 執(zhí)行過程(1)先求解表達(dá)式1;(2)求解表達(dá)式2,若其值為真,則 執(zhí)行循環(huán)體語句,然后執(zhí)行第(3)步;若為假,則結(jié)束循環(huán),轉(zhuǎn)到第(5)步;(3)求解表達(dá)式3;(4)轉(zhuǎn)向步驟(2);(5)循環(huán)
7、結(jié)束,執(zhí)行for語句下面的一個語句。表達(dá)式2循環(huán)體語句假 真求解表達(dá)式1求解表達(dá)式3四、for語句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ù)和.3 求110的偶數(shù)和.四、for語句for (表達(dá)式1;表達(dá)式2;表達(dá)式3) 語句 說明三個表達(dá)式都可以省略。表達(dá)式2循環(huán)體語句假 真求解表達(dá)式3表達(dá)式1省略循
8、環(huán)體語句求解表達(dá)式1求解表達(dá)式3表達(dá)式2省略表達(dá)式2循環(huán)體語句假 真求解表達(dá)式1表達(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á)式1可以省略,但其后的分號不可以省略。沒有循環(huán)結(jié)束條件,構(gòu)成了死循環(huán)for(i=1; i=10;i+) sum=sum+i; 四、for語句說明45for( ; ; ) sum=sum+i; 6表達(dá)式1和表達(dá)式3可以是與循環(huán)變量無關(guān)的表達(dá)式。f
9、or( ;i=10 ; ) sum=sum+i; i+; 7表達(dá)式2一般是關(guān)系表達(dá)式,也可以是數(shù)值或字符表達(dá)式。while(i=10) sum=sum+i; i+ ; while (1) sum=sum+i; 表達(dá)式1和表達(dá)式3可以同時省略,此時等同于while語句。for(sum=0,i=1;i=100,i+) sum=sum+i; 例建議:for語句中只放與循環(huán)控制有關(guān)的語句。四、for語句格式while (表達(dá)式1) if (表達(dá)式2) break; 舉例 . sum=0; for (i=1;i5) break; sum=sum+i; printf(“sum=%5dn”,sum); .w
10、hile (表達(dá)式1) if (表達(dá)式2) conitue; 結(jié)束整個循環(huán)結(jié)束本次循環(huán) . sum=0; for (i=1;i=10;i+) if (i=5) continue; sum=sum+i; printf(“sum=%5dn”,sum); .五、breakcontinue語句說明1. 三種循環(huán)語句在處理循環(huán)問題時,一般可以相互替代。2. 對于循環(huán)次數(shù)固定的問題,用for語句實(shí)現(xiàn)比較簡單。3. 對于循環(huán)次數(shù)不確定的問題,可用while語句或do-while語句實(shí)現(xiàn)。4. while語句:先判斷,后執(zhí)行。 do-while語句:先執(zhí)行,后判斷。六、幾種循環(huán)語句的比較概念一個循環(huán)體內(nèi)又包含
11、另一個完整的循環(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 j=2 i=3i=4for i=1 to 4輸出i*jfor j=1 to 4換行七、循環(huán)嵌套 1 2 4 3 6 9 4 8 12 16#include int m
12、ain() 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)嵌套思考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”); return 0;(一)循環(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+)
13、 printf(“ ” ); for (j=5-i;j=4;j+) printf(“%4d”,i*j); printf(“n”); return 0;(一)循環(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(“ ” ); for (j=i;j=4;j+) printf(“%4d”,i*j); printf(“n”); return 0;(一)循環(huán)嵌套思考4 1 2 3 4 4 6 8 9 12 16例1利用公式:/4=1-1/3+1/5-1/7
14、+求 的近似值,直到某一項(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; pi=pi*4; printf(pi=%10.6fn,pi); return 0; 思考:使用那一種循環(huán)控制語句?(二)程序舉例pi=1-1/3+輸出4* pis=1(-1)n=1,3,5,7t=s/n例2求Fibonacci數(shù)列的前40個數(shù)。#include int main() long int f1,f2
15、; 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ù)。素?cái)?shù)(質(zhì)數(shù)): 只能被1和它本身整除的數(shù)。判別方法:57:若256之間的每一個數(shù)都除不開56,則56為素?cái)?shù),否則56不是素?cái)?shù)。m, k=m-1,i=2k :若每一個 i 的值都除不開m,則m為素?cái)?shù),否則m不是素?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!”);else printf(“no!”);k=m-1;k=m/2;(m+1)/2;k=sqrt(m);sqrt(m+1)(二)程序舉例例3輸出 101200之間的全部素?cái)?shù)。for m=101 to 200判斷m是否為素?cái)?shù)若m是素?cái)?shù),則輸出并統(tǒng)計(jì)個數(shù)n.每輸出10個素?cái)?shù),換行#include #include int main() int m,k,i,n=0; for(m=101;m=200;m=m+2) k=
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度購房意向金保險合同
- 二零二五年度車輛事故理賠與車輛維修保養(yǎng)保險協(xié)議
- 二零二五年度房屋出售居間委托合同(含房產(chǎn)交易風(fēng)險評估)
- 2025年度網(wǎng)絡(luò)安全責(zé)任保險合作協(xié)議書
- 二零二五年度鋼結(jié)構(gòu)維修保養(yǎng)安全責(zé)任書
- 夫妻婚內(nèi)忠誠協(xié)議二零二五年度情感維系合同
- 浙江國企招聘2024嘉興南湖新豐鎮(zhèn)下屬國資公司招聘3人筆試參考題庫附帶答案詳解
- 九江富和建設(shè)投資集團(tuán)有限公司2024年紀(jì)檢專干招聘筆試參考題庫附帶答案詳解
- 2025廣東汕尾市水務(wù)集團(tuán)有限公司招聘人員8人筆試參考題庫附帶答案詳解
- 交通安全與事故預(yù)防知到智慧樹章節(jié)測試課后答案2024年秋山東理工大學(xué)
- 中科大《無機(jī)化學(xué)》課件1氣體、液體和溶液的性質(zhì)
- 復(fù)婚合同協(xié)議書模板
- U8-EAI二次開發(fā)說明
- 2006 年全國高校俄語專業(yè)四級水平測試試卷
- 浙江省勞動保障監(jiān)察員培訓(xùn)監(jiān)察執(zhí)法程序(林琳)
- 新人教版數(shù)學(xué)四年級下冊全冊表格式教案
- 閩教版(2020版)六年級下冊信息技術(shù)整冊教案
- ad-hoc第二章-ad-hoc網(wǎng)絡(luò)中的MAC協(xié)議
- 二手房買賣合同正式版空白
- 食品銷售經(jīng)營者食品安全管理制度(零售)
- 通信電源-概述ppt課件
評論
0/150
提交評論