




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、2構(gòu)成有效的循環(huán)構(gòu)成有效的循環(huán), ,需指定兩個(gè)條件需指定兩個(gè)條件: : (1) (1)循環(huán)體循環(huán)體: : 即重復(fù)執(zhí)行的操作即重復(fù)執(zhí)行的操作 (2)(2)循環(huán)結(jié)束條件循環(huán)結(jié)束條件: : 在何種情況下終止重復(fù)執(zhí)行的操作在何種情況下終止重復(fù)執(zhí)行的操作34l一般為一般為關(guān)系關(guān)系表達(dá)式或表達(dá)式或邏輯邏輯表達(dá)式,也可以表達(dá)式,也可以是是C語(yǔ)言其他類型的語(yǔ)言其他類型的合法表達(dá)式合法表達(dá)式 l用來(lái)控制循環(huán)體是否用來(lái)控制循環(huán)體是否執(zhí)行,為循環(huán)條件。執(zhí)行,為循環(huán)條件。l稱為稱為內(nèi)嵌語(yǔ)句內(nèi)嵌語(yǔ)句,可,可以是基本語(yǔ)句、控以是基本語(yǔ)句、控制語(yǔ)句,也可以是制語(yǔ)句,也可以是復(fù)合語(yǔ)句復(fù)合語(yǔ)句l是循環(huán)重復(fù)執(zhí)行的是循環(huán)重復(fù)執(zhí)行的
2、部分部分 ,即循環(huán)體,即循環(huán)體5l計(jì)算表達(dá)式的值計(jì)算表達(dá)式的值,為非,為非0(邏輯真)時(shí),重復(fù)執(zhí)(邏輯真)時(shí),重復(fù)執(zhí)行行內(nèi)嵌語(yǔ)句內(nèi)嵌語(yǔ)句,每執(zhí)行一次,就判斷一次表達(dá)式,每執(zhí)行一次,就判斷一次表達(dá)式的值,直到表達(dá)式的值為的值,直到表達(dá)式的值為0 時(shí)結(jié)束循環(huán),轉(zhuǎn)去執(zhí)時(shí)結(jié)束循環(huán),轉(zhuǎn)去執(zhí)行行while后面的語(yǔ)句。后面的語(yǔ)句。 當(dāng)表達(dá)式為真當(dāng)表達(dá)式為真 語(yǔ)句語(yǔ)句表 達(dá) 式 非表 達(dá) 式 非0?語(yǔ)句語(yǔ)句6例例2 2 用用whilewhile循環(huán)語(yǔ)句,求循環(huán)語(yǔ)句,求100100個(gè)自然數(shù)的和個(gè)自然數(shù)的和 即:即: s=1+2+3+ s=1+2+3+ +100 +100 算法和程序:算法和程序:main( )
3、int i,sum; i=1; sum=0; printf(sum=%dn,sum);程序輸出結(jié)果:程序輸出結(jié)果:sum=5050 i=1,sum=0 當(dāng)當(dāng)i = 100 sum=sum+i i+輸出輸出sum7 i=1;sum=0; while (i=100) i+; sum=sum+i; 運(yùn)行后,輸出:運(yùn)行后,輸出:89#include main() int i=1; while(i=10-4 t=s/n pi=pi+t n=n+2 s=-spi=pi*4輸出輸出pi分析分析: 1.: 1.定義變量定義變量t t為式中某一項(xiàng)為式中某一項(xiàng)的值的值,n,n為為t t的分母的分母,s,s為為t
4、t的符的符號(hào)號(hào),pi,pi為為= =右側(cè)的累加和右側(cè)的累加和; ; 2. 2.各變量賦初值各變量賦初值: : s=1,n=1,t= s=1,n=1,t=s/ns/n=1,pi=0;=1,pi=0; 3. 3.循環(huán)條件:循環(huán)條件: |t|1e-4|t|1e-4 4. 4.循環(huán)體:先將循環(huán)體:先將t t加入加入pi,pi, 再改變?cè)俑淖僺,ns,n14程序如下:程序如下:#include #include int main(void) int n, s; double t, pi; s = 1; n = 1 ; t = 1.0; pi = 0; while(fabs (item) = 1e-4)
5、t = s * 1.0 / n; pi = pi + t; s = -s; n= n +2; pi = pi * 4; printf ( “pi = %fn”, pi); return 0;15l語(yǔ)句一般格式語(yǔ)句一般格式l功能:功能:16N-S結(jié)構(gòu)圖結(jié)構(gòu)圖for (表達(dá)式表達(dá)式1;表達(dá)式表達(dá)式2;表達(dá)式表達(dá)式3) 語(yǔ)句語(yǔ)句NY流程圖流程圖計(jì)算表達(dá)式計(jì)算表達(dá)式1 語(yǔ)句語(yǔ)句計(jì)算表達(dá)式計(jì)算表達(dá)式3表達(dá)式表達(dá)式2為真為真?main( ) int i,sum; sum=0; printf(sum=%dn,sum);17即即: 即:即:注意:在省略某個(gè)表達(dá)式時(shí),應(yīng)在注意:在省略某個(gè)表達(dá)式時(shí),應(yīng)在適當(dāng)位置進(jìn)
6、行循環(huán)控制的適當(dāng)位置進(jìn)行循環(huán)控制的必要操作,以保證循環(huán)的必要操作,以保證循環(huán)的正確執(zhí)行正確執(zhí)行18; for ( ; i=100; i+) sum+=i; for (i=1; ; i+) break; sum+=i; for (i=1; i=100; ) sum+=i; for ( ; ; ) break; sum+=i; 1920i = 1; /*循環(huán)變量賦初值循環(huán)變量賦初值*/while (i = 10) /*循環(huán)條件循環(huán)條件*/ sum = sum + i; i+; /*循環(huán)變量的改變循環(huán)變量的改變*/21例例6 6 求求n! n! ,即計(jì)算即計(jì)算p=1p=12 23 3n n的值。的值
7、。思路:求階乘與求累加的運(yùn)算處理過(guò)程類似,只要思路:求階乘與求累加的運(yùn)算處理過(guò)程類似,只要將將“ ”變?yōu)樽優(yōu)椤?”。設(shè)置:設(shè)置: ,初值為,初值為1,終值為,終值為n(n是循環(huán)控制終是循環(huán)控制終值,需要從鍵盤輸入)值,需要從鍵盤輸入) ,每次循環(huán)令,每次循環(huán)令p = p*i22main( ) int i, n; ; /*存放階乘結(jié)果存放階乘結(jié)果*/ printf(Enter n:); scanf(%d,&n); for (i=1; i=n; i+) =; printf(p = n,p);23例例7 7 從鍵盤輸入一批學(xué)生的成績(jī),計(jì)算平均分從鍵盤輸入一批學(xué)生的成績(jī),計(jì)算平均分, ,并求最高成績(jī)。
8、并求最高成績(jī)。l 求累加和求累加和,用循環(huán)用循環(huán)l 確定循環(huán)條件確定循環(huán)條件:不知道輸入數(shù)據(jù)的個(gè)數(shù),無(wú)法事先不知道輸入數(shù)據(jù)的個(gè)數(shù),無(wú)法事先確定循環(huán)次數(shù)確定循環(huán)次數(shù),可用一個(gè)可用一個(gè)特殊的數(shù)據(jù)特殊的數(shù)據(jù)作為正常輸入數(shù)作為正常輸入數(shù)據(jù)的結(jié)束標(biāo)志,比如選用一個(gè)負(fù)數(shù)作為結(jié)束標(biāo)志據(jù)的結(jié)束標(biāo)志,比如選用一個(gè)負(fù)數(shù)作為結(jié)束標(biāo)志。分析:分析:#include void main(void) int num=0; double total=0,max,grade; printf(“Enter grades: n); scanf(“%lf”, &grade); /* 輸入第輸入第1個(gè)數(shù)個(gè)數(shù),double型數(shù)輸入格式
9、型數(shù)輸入格式%lf*/max=grade; while (grade = 0) /* 輸入負(fù)數(shù),循環(huán)結(jié)束輸入負(fù)數(shù),循環(huán)結(jié)束 */ total = total + grade; num+; scanf (“%lf”, &grade); if(maxgrade) max=grade;if(num != 0) printf(“Average is %.2fn, Max is %fn, total/num,max);else printf( Average is 0 and Max is 0n);24例例8 8 從鍵盤讀入一個(gè)正整數(shù),統(tǒng)計(jì)該數(shù)的位數(shù)從鍵盤讀入一個(gè)正整數(shù),統(tǒng)計(jì)該數(shù)的位數(shù), ,并將該正整數(shù)
10、逆序輸出。并將該正整數(shù)逆序輸出。 12345 5 4 3 2 1 12345 % 10 = 5 12345 / 10 = 1234 cun=1 1234 % 10 = 4 1234 / 10 = 123 cun=2 123 % 10 = 3 123 / 10 = 12 cun=3 12 % 10 = 2 12 / 10 = 1 cun=4 1 % 10 = 1 1 / 10 = 0 結(jié)束結(jié)束 cun=5循環(huán)體循環(huán)體 x%10 x=x/10 cun+循環(huán)結(jié)束條件循環(huán)結(jié)束條件 x=025/ /* *numnum初始值為初始值為1 1* */ /262728后續(xù)語(yǔ)句后續(xù)語(yǔ)句 后續(xù)語(yǔ)句后續(xù)語(yǔ)句后續(xù)語(yǔ)句
11、后續(xù)語(yǔ)句29例:從鍵盤輸入例:從鍵盤輸入10個(gè)非負(fù)數(shù)個(gè)非負(fù)數(shù),并求和并求和(輸入負(fù)數(shù)時(shí)重新輸入輸入負(fù)數(shù)時(shí)重新輸入)。改正:將改正:將n+放入放入if語(yǔ)句之后語(yǔ)句之后30for (n=100; n=200; n+) n不能被不能被7整除整除 T F 終止本次循環(huán)終止本次循環(huán) 輸出輸出n j+; 輸出輸出10個(gè)數(shù)個(gè)數(shù)? T F 換行換行j=0;31main( ) int n,j=0; for(n=100;n=200;n+) printf(%6d,n); printf( n j=%dn,j); printf(%6d,n); 32后續(xù)語(yǔ)句后續(xù)語(yǔ)句后續(xù)語(yǔ)句后續(xù)語(yǔ)句后續(xù)語(yǔ)句后續(xù)語(yǔ)句33例例: 從鍵盤輸入從
12、鍵盤輸入10個(gè)非負(fù)數(shù)個(gè)非負(fù)數(shù),并求和并求和(輸入負(fù)數(shù)時(shí)停止輸入輸入負(fù)數(shù)時(shí)停止輸入)。34#include main( ) int i, j; for ( i=1; i10; i+ ) for ( j=1; j=i; j+ ) printf (j=i)?%4dn:%4d,i*j); 外循環(huán)語(yǔ)句外循環(huán)語(yǔ)句內(nèi)循環(huán)語(yǔ)句內(nèi)循環(huán)語(yǔ)句for ( j=1; j=i; j+ ) printf (j=i)?%4dn:%4d,i*j);外層循環(huán)外層循環(huán) 循環(huán)體循環(huán)體printf (j=i)?%4dn:%4d,i*j);內(nèi)層循環(huán)內(nèi)層循環(huán) 循環(huán)體循環(huán)體35(1) while() while() . (2) do do
13、while( ); . while( );(3) while() do while( ); . (4) for( ; ;) do while(); while() .內(nèi)循環(huán)內(nèi)循環(huán)外循環(huán)外循環(huán)內(nèi)循環(huán)內(nèi)循環(huán)3637思路:思路:Fibonacci數(shù)列的前幾項(xiàng)是:數(shù)列的前幾項(xiàng)是:1、1、2、3、5、8、13、21、34、。此數(shù)列的變化規(guī)律是:。此數(shù)列的變化規(guī)律是:38#define 20main( ) int i,f1,f2,f3; f1=f2=1; printf(n%8d%8d,f1,f2); for (i=3; i= ; i+) f3=f1+f2; f1=f2; f2=f3; printf(%8d
14、,f3); f1=1,f2=1并輸出并輸出for (i=3; i=20; i+) f3=f2+f1 f1=f2,f2=f3 輸出輸出f3 T F 換行換行39l分別用分別用嘗試能否整除整數(shù)嘗試能否整除整數(shù) 。40#include math.hmain( ) int j,m,k; printf(Enter an integer number: ); scanf(%d,&m); for (j=2; ; j+) if () printf(YESn); else printf(NOn); 輸入一個(gè)數(shù)輸入一個(gè)數(shù)mfor (j=2; j); printf(%fn,x);x賦初值賦初值x0=x計(jì)算計(jì)算f計(jì)算計(jì)算f1 計(jì)算計(jì)算x=x0-f/f1當(dāng)當(dāng) |x-x0|10-6時(shí)時(shí)輸出輸出x45一個(gè)數(shù)的因子(除了這個(gè)數(shù)本身)之和一個(gè)數(shù)的因子(除了這個(gè)數(shù)本身)之和等于該數(shù)本身。等于該數(shù)本身。的的因子因子是是1、2、3,因子和因子和 1+2+346main( ) int i,j,s; (i=2; i=10000; i+) s=0; (j=1; ji; j+) if (i%j=0) s+=j; if (i=s) printf(
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 自動(dòng)售貨機(jī)行業(yè)市場(chǎng)發(fā)展現(xiàn)狀與市場(chǎng)發(fā)展前景展望預(yù)測(cè)考核試卷
- 回歸測(cè)試必要性分析試題及答案
- 行政組織理論發(fā)展的影響因素及2025年試題及答案
- 帶寬管理與流量控制技術(shù)試題及答案
- 關(guān)注軟件測(cè)試工程師考試試題及答案動(dòng)態(tài)
- 公路工程施工案例試題及答案探討
- 老年人日常生活照料技能考核試卷
- 嵌入式控制系統(tǒng)設(shè)計(jì)技巧試題及答案
- 嵌入式編程中的最佳實(shí)踐試題及答案
- 行政組織中的社會(huì)責(zé)任與價(jià)值觀探索試題及答案
- DB22-T 5118-2022 建筑工程資料管理標(biāo)準(zhǔn)
- 集體備課《發(fā)生在肺內(nèi)的氣體交換》
- 麗聲英語(yǔ)百科分級(jí)讀物第四級(jí)Animal Tricks課件
- 六年級(jí)下冊(cè)生命生態(tài)安全知識(shí)要點(diǎn)
- JJG 211-2021 亮度計(jì)檢定規(guī)程(高清最新版)
- 高壓噴射注漿工程施工工藝標(biāo)準(zhǔn)
- 最新部編版九年級(jí)語(yǔ)文下冊(cè)課件(完美版)寫(xiě)作布局謀篇
- 個(gè)人公證委托書(shū)
- 農(nóng)村水電站崗位設(shè)置及定員標(biāo)準(zhǔn)(全面)
- 第五章溶膠凝膠法
- 點(diǎn)亮我的小燈泡實(shí)驗(yàn)記錄單
評(píng)論
0/150
提交評(píng)論