PPT-單元五循環(huán)結(jié)構(gòu)程序設(shè)計_第1頁
PPT-單元五循環(huán)結(jié)構(gòu)程序設(shè)計_第2頁
PPT-單元五循環(huán)結(jié)構(gòu)程序設(shè)計_第3頁
PPT-單元五循環(huán)結(jié)構(gòu)程序設(shè)計_第4頁
PPT-單元五循環(huán)結(jié)構(gòu)程序設(shè)計_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、C語言程序設(shè)計 高等教育出版社 新形態(tài)一體化教材單元五【問題1】某大賽中重復(fù)要做的事情是什么?【問題2】滿足什么條件大賽可繼續(xù)執(zhí)行?2三種循環(huán)語句3循環(huán)結(jié)構(gòu)控制語句4循環(huán)應(yīng)用1循環(huán)的本質(zhì) 循環(huán)的本質(zhì)1循環(huán)的本質(zhì)引例98777 71號:總分31分8 87 76 62號:總分28分 評委亮分 計算總分 在某一條件成立的情況下反復(fù)做重復(fù)性的事情,這就是循環(huán)。某大賽重復(fù)的事情有:1循環(huán)的本質(zhì)如何用程序設(shè)計語言來描述大賽問題呢?int i=1; 設(shè) i 為評委編號,整型,初始值為1 設(shè)score存評委分?jǐn)?shù),sum存總分并設(shè)初值為0.0,均為浮點型double score, sum=0.0; 在 i=4

2、的條件下反復(fù)執(zhí)行如下操作:scanf(%lf,&score ); 播報(輸入)當(dāng)前評委亮出的分?jǐn)?shù)scoresum+=score;累加到總分sumi+;評委編號遞增1 變量定義 算法描述1循環(huán)的本質(zhì) 減少源代碼的存儲空間,提高程序質(zhì)量。 可重復(fù)執(zhí)行某些相同代碼的程序段; 將程序員從大量重復(fù)編寫相同代碼的工作中解放出來,提高程序編寫效率;循環(huán)的本質(zhì)【循環(huán)結(jié)構(gòu)的任務(wù)】1循環(huán)的本質(zhì) 每次循環(huán)要做什么,即“反復(fù)執(zhí)行的語句”,稱為“循環(huán)體”。 循環(huán)從什么時候開始,即“循環(huán)變量初值”。 滿足什么條件要循環(huán),即“循環(huán)控制條件表達式”。i=1;i=4scanf(%lf,&score ); sum

3、+=score;i+;循環(huán)變量初值循環(huán)控制條件表達式循環(huán)體循環(huán)結(jié)構(gòu)三要素【概括大賽問題】3循環(huán)結(jié)構(gòu)控制語句4循環(huán)應(yīng)用1循環(huán)的本質(zhì)2三種循環(huán)語句 三種循環(huán)語句2三種循環(huán)語句while語句while(表達式) 循環(huán)體;【一般格式】 循環(huán)控制條件表達式由一條或多條語句組成,當(dāng)“循環(huán)體”僅有一條語句時,可省略“”。表達式真?循環(huán)體真(非0)假(0)【流程圖】2三種循環(huán)語句while語句示例利用while語句計算大賽選手總分。(有10位評委)#include void main( ) double score, sum=0; int i=1; while(i=10) printf(請第%d位評委亮分:,

4、i); scanf(%lf,&score ); sum=sum+score; i+; printf(“該選手的總分為:%.2lf.n,sum);循環(huán)控制條件循環(huán)體2三種循環(huán)語句while語句隨堂練習(xí)利用while語句計算1n中的奇數(shù)之和及偶數(shù)之和?!咎崾尽?n的值在程序執(zhí)行時通過鍵盤輸入 各變量初值如何設(shè)計? 循環(huán)變量增量如何設(shè)計? 循環(huán)條件如何設(shè)計?2三種循環(huán)語句dowhile語句do 循環(huán)體; while(表達式);【一般格式】 表達式后必須有;【流程圖】表達式真?循環(huán)體真(非0)假(0)2三種循環(huán)語句dowhile語句示例利用while語句計算大賽選手總分。(有10位評委)#in

5、clude void main( ) double score, sum=0; int i=1; do printf(請第%d位評委亮分:,i); scanf(%lf,&score ); sum=sum+score; i+; while(i=10); printf(“該選手的總分為:%.2lf.n,sum);2三種循環(huán)語句dowhile語句隨堂練習(xí)利用dowhile語句計算1+1/2+1/3+1/n。【提示】 n的值在程序執(zhí)行時通過鍵盤輸入 各變量的數(shù)據(jù)類型如何設(shè)計? “1”與“1.0”有什么區(qū)別?2三種循環(huán)語句for語句【一般格式】 【流程圖】for(表達式1; 表達式2; 表達式3

6、) 循環(huán)體;表達式之間用;分隔表達式2?循環(huán)體真(非0)表達式1表達式3假(0)2三種循環(huán)語句for語句示例利用for語句計算大賽選手總分。(有10位評委)#include void main( ) double score, sum=0; int i; for(i=1;i=10;i+) printf(請第%d位評委亮分:,i); scanf(%lf,&score ); sum=sum+score; printf(“該選手的總分為:%.2lf.n,sum);2三種循環(huán)語句for語句隨堂練習(xí)利用for語句計算1+1/2+1/3+1/n?!咎崾尽?n的值在程序執(zhí)行時通過鍵盤輸入 各變量的數(shù)

7、據(jù)類型如何設(shè)計? 若“int n=2;”,“1/n”的值是多少? “1.0/n”又是多少? 4循環(huán)應(yīng)用1循環(huán)的本質(zhì)2三種循環(huán)語句3循環(huán)結(jié)構(gòu)控制語句 循環(huán)結(jié)構(gòu)控制語句3循環(huán)結(jié)構(gòu)控的制語句break語句 引例while(表達式1) if(表達式2) break; u在程序執(zhí)行的過程中,如果“表達式2”為真,則執(zhí)行break語句,此時也會終止循環(huán)。 u正常情況下,該循環(huán)結(jié)構(gòu)的執(zhí)行由循環(huán)控制條件“表達式1”控制,當(dāng)“表達式1”為假時,循環(huán)結(jié)束?!疽话愀袷健?break;結(jié)束循環(huán)3循環(huán)結(jié)構(gòu)控的制語句break語句 示例 設(shè)計一個程序?qū)崿F(xiàn):輸入若干字符,對輸入的英文字母原樣輸出,其他字符不輸出,直到輸入回

8、車鍵結(jié)束。#include void main( ) char ch; while(1) ch=getchar(); if(ch=n) break; else if(ch=a&ch=A&ch=Z) putchar(ch); 結(jié)束循環(huán)3循環(huán)結(jié)構(gòu)控的制語句continue語句 引例while(表達式1) if(表達式2) continue; u在執(zhí)行循環(huán)體的過程中。如果“表達式2”為真,執(zhí)行continue語句,即不再執(zhí)行continue后面的循環(huán)體語句,轉(zhuǎn)到“表達式1”進行下一次循環(huán)控制條件的判定。u在循環(huán)控制條件“表達式1”成立的情況下,則執(zhí)行循環(huán)體?!疽话愀袷健?contin

9、ue;結(jié)束本次循環(huán),進行下一次是否執(zhí)行循環(huán)的判定。 3循環(huán)結(jié)構(gòu)控的制語句continue語句 示例 設(shè)計一個程序?qū)崿F(xiàn):輸入若干字符,對輸入的英文字母原樣輸出,其他字符不輸出,直到輸入回車鍵結(jié)束。#include void main( ) char ch; while(ch=getchar()!=n) if(ch=a&ch=A&ch=Z) continue; putchar(ch); 結(jié)束本次循環(huán),進行下一次是否執(zhí)行循環(huán)的判定。1循環(huán)的本質(zhì)2三種循環(huán)語句4循環(huán)應(yīng)用 循環(huán)應(yīng)用3循環(huán)結(jié)構(gòu)控制語句4循環(huán)應(yīng)用 【應(yīng)用1】自冪數(shù)是指一個 n 位整數(shù),它的每個位上的數(shù)字的 n 次冪之和等于它

10、本身。當(dāng)n為4時,自冪數(shù)稱為玫瑰花數(shù),試編程輸出10009999范圍內(nèi)所有的玫瑰花數(shù)。(形如14+64+34+44=1634) 【分析】設(shè)這個四位整數(shù)為n,它的各位數(shù)字從低到高分別為a、b、c和d。 a=n%10 b=n/10%10 c=n/100%10 d=n/1000個位十位百位千位4循環(huán)應(yīng)用#include void main() int i,n,a,b,c,d; for(i=1000;i=9999;i+) n=i; a=n%10; b=n/10%10; c=n/100%10; d=n/1000; if(a*a*a*a+b*b*b*b+c*c*c*c+d*d*d*d=n) printf(

11、%6d,n); 163482089474輸出結(jié)果4循環(huán)應(yīng)用 【應(yīng)用2】百元百雞問題。我國古代數(shù)學(xué)家張丘鍵在算經(jīng)中出了一道題:雞翁一,值錢五;雞母一,值錢三;雞雛三,值錢一。百錢買百雞,問雞翁、雞母、雞雛各幾何? 【分析】設(shè)一百只雞中公雞、母雞、小雞分別為x,y,z,問題化為三元一次方程組。(百錢)(百雞)x、y、z的取值范圍: x的取值范圍為120; y的取值范圍為133; z的取值范圍為399,步長為3。x、y、z為正整數(shù),且z是3的倍數(shù);由于雞和錢的總數(shù)都是100。用窮舉的方法,遍歷x,y,z的所有可能組合,最后得到問題的解。#include void main() int gongji,muji,xiaoji; for(gongji=1;gongji=20;gongji+) /公雞可能的數(shù)量范圍 for(muji=1;muji=33;muji+) /母雞可能的數(shù)量范圍 for(xiaoji=3;xiaoji=100;xiaoji=xiaoji+3) /小雞可能的數(shù)量范圍 if(xiaoji/3+muji*3+gongji*5=100)&(xiaoji+muji+gongji=100) printf(%4dt%4dt%4dn,gongji,muji,xiaoji); 4循環(huán)應(yīng)用輸出結(jié)果:公雞 母雞 小雞 4

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論