C語言程序設計 (17)_第1頁
C語言程序設計 (17)_第2頁
C語言程序設計 (17)_第3頁
C語言程序設計 (17)_第4頁
C語言程序設計 (17)_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

1、C語言程序設計任課教師任課教師:葉葉 華華統(tǒng)計機科學與軟件學院統(tǒng)計機科學與軟件學院第5章 循環(huán)結(jié)構(gòu)程序設計n循環(huán)結(jié)構(gòu)概述循環(huán)結(jié)構(gòu)概述n while語句語句n do while語句語句n for語句語句n程序舉例程序舉例5.1 循環(huán)結(jié)構(gòu)概述n當型循環(huán)結(jié)構(gòu)當型循環(huán)結(jié)構(gòu)n直到型循環(huán)結(jié)構(gòu)直到型循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)當型結(jié)構(gòu)例例:罰寫詞組罰寫詞組PA假真當P為真A抄寫犯錯詞組不足100遍?接著抄寫假真循環(huán)結(jié)構(gòu)直到型結(jié)構(gòu)例例:為湖水清理水草為湖水清理水草水草清理干凈了?清理水草假真AP真假A直到P為真5.1 循環(huán)結(jié)構(gòu)概述nC語言可實現(xiàn)循環(huán)結(jié)構(gòu)的關(guān)鍵語句語言可實現(xiàn)循環(huán)結(jié)構(gòu)的關(guān)鍵語句:nwhile 語句語句ndo

2、while 語句語句nfor 語句語句5.2 while語句n履行流程 n語法標準 表達式表達式循環(huán)體循環(huán)體假假(0)真真(非非0)whilewhile(表達式表達式) 循環(huán)體語句循環(huán)體語句5.2 while語句n特點特點:n當型結(jié)構(gòu)當型結(jié)構(gòu):先推斷表達式先推斷表達式,后履行后履行循環(huán)體循環(huán)體n講明講明:n循環(huán)體有大概一次也不履行循環(huán)體有大概一次也不履行n循環(huán)體可為隨意率性類型語句循環(huán)體可為隨意率性類型語句n循環(huán)體如果見諒多條語句應其組循環(huán)體如果見諒多條語句應其組織為復合語句織為復合語句 表達式表達式循環(huán)體循環(huán)體假假(0)真真(非非0)while5.2 while語句n例例5-1:用用whil

3、e循環(huán)求循環(huán)求7個職員的周薪金個職員的周薪金,同時同時表現(xiàn)表現(xiàn).薪金統(tǒng)計程式為薪金統(tǒng)計程式為:周薪金周薪金 = 每周任務時候(小時)每周任務時候(小時) 收入(每收入(每小時)小時)統(tǒng)計該職工周薪金同時輸出表現(xiàn)假假(0)真真(非非0)記錄已操作職工數(shù)變量count_emp初始化輸入某職工任務時候和每小時薪金未操作完7名職工?count_emp增1計數(shù)main() int count_emp; int hours; double rate,pay; while語句main() count_emp = 0; *count_emp初始化為0* while (count_emp); scanf(%d,

4、&hours); printf(Please input Rate); scanf(%lf,&rate); pay = hours * rate; printf(Pay is $%6.2fn,pay); count_emp+; *count_emp增1計數(shù)* 循環(huán)操縱前提循環(huán)操縱前提循環(huán)操縱變量初始化循環(huán)操縱變量初始化循環(huán)操縱變量更新循環(huán)操縱變量更新5.2 while語句n講明講明:n while之后的表達式稱為循環(huán)重復前提之后的表達式稱為循環(huán)重復前提.n變量變量count_emp的值決意了循環(huán)體是的值決意了循環(huán)體是否重復否重復,所以它被稱為循環(huán)操縱變量所以它被稱為循環(huán)操縱變量

5、.循循環(huán)操縱變量必須被初始化、檢驗、更環(huán)操縱變量必須被初始化、檢驗、更新新.n初始化初始化:到達到達while語句之前語句之前 count_emp被設置為初值被設置為初值0 n檢驗檢驗:在最先每次循環(huán)重復之前在最先每次循環(huán)重復之前 count_emp 被檢驗被檢驗n更新更新:在每次循環(huán)期間在每次循環(huán)期間count_emp被更被更新新5.2 while語句n例例5-2:用用while循環(huán)求循環(huán)求 1001insum sum + n假假(0)真真(非非0)記錄累加信息的變量n初始化記錄累加和變量sum初始化未操作完全部信息的累加?n增1計數(shù)輸出累加和例例5-2 用用while循環(huán)求循環(huán)求 1001

6、nn *0502sum.c* #include main() int i,sum; i = 1; sum = 0; while(i=100) sum=sum+i; i+; printf(%d,sum); 循環(huán)初值循環(huán)初值循環(huán)終值循環(huán)終值循環(huán)變量增值循環(huán)變量增值循環(huán)前提循環(huán)前提循環(huán)體循環(huán)體1001in5.2 while語句n例例5-3:編程求編程求1 + 3 + 5 + 7 + ,直到累加和直到累加和大于大于100.程序輸出累加和結(jié)論和累加項數(shù)程序輸出累加和結(jié)論和累加項數(shù).sum sum + (2 * n + 1)假假(0)真真(非非0)記錄累加信息的變量n初始化為0記錄累加和變量sum初始化為

7、0sum=100?n增1計數(shù)輸出累加和sum、累加項數(shù)n例例5-31001nn *oddsum.c* #include main() int n ,sum; n = 0; sum = 0; while(sum=100) sum=sum+(2*n+1); n+; printf(“累加和累加和=%d,相加次數(shù)相加次數(shù)=%d, sum, n); 循環(huán)初值循環(huán)初值循環(huán)終值循環(huán)終值循環(huán)變量增值循環(huán)變量增值循環(huán)前提循環(huán)前提循環(huán)體循環(huán)體do 循環(huán)體語句循環(huán)體語句 while(表達式表達式); do循環(huán)體循環(huán)體表達式表達式假假(0)真真(非非0)while5.3 do-while語句n履行流程 n語法標準 表

8、達式循環(huán)體假(0)真(非0)循環(huán)體While循環(huán)n特點特點:n當型結(jié)構(gòu)當型結(jié)構(gòu):先履行循環(huán)體先履行循環(huán)體,后推斷表達式(直到型)后推斷表達式(直到型)n講明講明:n到少履行一次循環(huán)體到少履行一次循環(huán)體ndo-while可轉(zhuǎn)化成可轉(zhuǎn)化成while結(jié)構(gòu)結(jié)構(gòu)5.3 do while語句n例例5-4:編程統(tǒng)計編程統(tǒng)計輸入的一組考輸入的一組考試成績的平均試成績的平均成績成績,輸入輸入-1示示意輸入結(jié)束意輸入結(jié)束. 成績累加成績累加假假(0)真真(非非0)輸入一輸入一個成績個成績成績個數(shù)增成績個數(shù)增1計數(shù)計數(shù)輸入的輸入的成績不成績不是是-1? int score,count,sum; double avg

9、; count = 0; sum = 0; do printf(Please input score:); scanf(%d,&score); sum += score; count+; while(score != -1); count-; avg = (double)(sum+1) count; printf(The average is %4.2fn,avg);循環(huán)結(jié)束前提、循環(huán)次數(shù)未知5.3 do while語句n例例5-5:用用while循環(huán)求循環(huán)求 1001insum sum + n假假(0)真真(非非0)記錄累加信息的變量n初始化記錄累加和變量sum初始化未操作完全部信息

10、的累加?n增1計數(shù)輸出累加和 *0505sum.c* #include main() int i,sum; sum=0; i=1; do sum+=i; i+; while(i=100); printf(%d,sum); 循環(huán)結(jié)束前提、循環(huán)次數(shù)已知循環(huán)操縱變量循環(huán)操縱變量更新while和和dowhile對比對比*0505sum.c*#include main() int i,sum=0; i = 1; do sum+=i;i+; while(i=10); printf(%d,sum);*0502sum.c*#include main() int i,sum=0; i = 1; while(i=

11、10) sum+=i;i+; printf(%d,sum);結(jié)論結(jié)論:當當 while后的表達式第一次的值為后的表達式第一次的值為“真真”時時,兩種結(jié)論一樣兩種結(jié)論一樣,否那么差別否那么差別.for(表達式表達式1;表達式表達式2 ;表達式表達式3) 循環(huán)體語句循環(huán)體語句表達式表達式2循環(huán)體循環(huán)體假假(0)真真(非非0)for表達式表達式1表達式表達式35.4 for語句n履行流程 n語法標準 for(表達式表達式1;表達式表達式2 ;表達式表達式3) 循環(huán)體語句循環(huán)體語句5.4 for語句n for語句的代表性使用 n表達式1:循環(huán)操縱變量初始化n表達式2:循環(huán)重復前提檢驗n表達式3:循環(huán)操

12、縱變量更新n語法標準 for( 循環(huán)變量賦初值循環(huán)變量賦初值; 循環(huán)前提循環(huán)前提; 循環(huán)變量增值循環(huán)變量增值) 循環(huán)體語句循環(huán)體語句 5.4 for語句n例例5-6:用用for循環(huán)求循環(huán)求 1001insum sum + n假假(0)真真(非非0)記錄累加信息的變量n初始化記錄累加和變量sum初始化未操作完全部信息的累加?n增1計數(shù)輸出累加和 *0506sum.c* #include main() int i,sum; sum=0; for( i=1; i=100; i+ ) sum += i; printf(%d,sum); 循環(huán)結(jié)束前提、循環(huán)次數(shù)已知循環(huán)操縱變量循環(huán)操縱變量更新For語句的

13、三個表達式可靈活使用語句的三個表達式可靈活使用例例:#include main( ) int i=0; for( ; i10; i+) putchar(a+i); 例例: #include main( ) int i=0; for( ; i10; ) putchar(a+(i+); 例例: #include main( ) int i=0; for( ; i10; putchar(a+i), i+ ) ; 省略表達式省略表達式1省略表達式省略表達式1,3省略循環(huán)體省略循環(huán)體main() int i,j,k; for( i=0,j=100; i=j; i+,j- ) k=i+j; printf(%d+%d=%dn,i,j,k); #includemain() char c; for(;(c=getchar()!=n;) printf(%c ,c);#include main() int i,c; for(i=0;(c=getchar()!=n;i+=3) printf(%c ,i+c);結(jié)論結(jié)論:for語句的功能強盛語句的功能強盛.表達式表達式 1、3為逗號表達式為逗號表達式挑選三種循環(huán)的一樣原那

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論