C語言程序設(shè)計(jì)第四版PPT譚浩強(qiáng).ppt_第1頁
C語言程序設(shè)計(jì)第四版PPT譚浩強(qiáng).ppt_第2頁
C語言程序設(shè)計(jì)第四版PPT譚浩強(qiáng).ppt_第3頁
C語言程序設(shè)計(jì)第四版PPT譚浩強(qiáng).ppt_第4頁
C語言程序設(shè)計(jì)第四版PPT譚浩強(qiáng).ppt_第5頁
已閱讀5頁,還剩29頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第5章循環(huán)結(jié)構(gòu),一個(gè)電話本程序的主菜單 問題:在完成一次操作后,如何重新出現(xiàn)菜單? 教材114頁,處理成批數(shù)據(jù)問題。,引例:,循環(huán)結(jié)構(gòu)流程,循環(huán)結(jié)構(gòu)的構(gòu)成,循環(huán)體重復(fù)執(zhí)行的操作 循環(huán)控制條件重復(fù)執(zhí)行操作的條件或結(jié)束重復(fù)執(zhí)行操作的條件 需要注意:初始狀態(tài),循環(huán)條件,每次循環(huán)后的變化,例1:求,while語句,while (表達(dá)式) 語句,流程圖,while語句,例1:求,int i=1, sum=0; while (i=100) sum=sum+i; /*也可寫為sum+=i*/ i+; printf(1+2+.+100=%dn,sum);,do-while語句,do 語句 while (表達(dá)式

2、),N-S圖,流程圖,do-while語句,例1:求,int i=1,sum=0; do sum=sum+i; i+; while(i=100); printf(1+2+.+100=%dn,sum);,例1:求,練習(xí)1:輸入10個(gè)數(shù)求和 練習(xí)2:求 n! = 1 * 2 * * n,計(jì)算機(jī)最擅長(zhǎng)的工作之一:累加求和,for語句的基本格式,for (表達(dá)式1;表達(dá)式2;表達(dá)式3) 語句,for語句的常用形式,for (循環(huán)變量賦初值;循環(huán)條件;循環(huán)變量增值) 語句,for語句,例1:求,int i,sum=0; for (i=1;i=100;i+) sum=sum+i; printf(1+2+.

3、+100=%dn,sum);,for語句,例1:求,問題的擴(kuò)展: (1) 求 1 100 間奇數(shù)的和 (2) 任意輸入一組10個(gè)數(shù),求它們的和 (3) 任意輸入一個(gè)正整數(shù)n,求1+2+n (4) 任意輸入一個(gè)正整數(shù)n,求n!,for語句,例1:求,問題的擴(kuò)展: (1) 求 1 100 間奇數(shù)的和,int i,sum=0; for (i=1;i=100;i=i+2) sum=sum+i; printf(1+3+.+99=%dn,sum);,int i,sum=0; for (i=1;i=100;i+) if(i%2=1)sum=sum+i; printf(1+3+.+99=%dn,sum);,f

4、or語句,例1:求,問題的擴(kuò)展: (2) 任意輸入一組10個(gè)數(shù),求它們的和,int i; float x,sum=0; for (i=1;i=5;i+) scanf(%f,for語句,例1:求,問題的擴(kuò)展: (3) 任意輸入一個(gè)正整數(shù)n,求1+2+n,int i,n,sum=0; printf(n=); scanf(%d,for語句,例1:求,問題的擴(kuò)展: (4) 任意輸入一個(gè)正整數(shù)n,求n!,int i,n; double fac=1; printf(n=); scanf(%d,考慮到階乘值的范圍,需要雙精度才能夠保存。但同時(shí)應(yīng)注意,雙精度類型的有效位數(shù)是15位,當(dāng)n值較大時(shí),其計(jì)算結(jié)果還是

5、有誤差的。,for語句,例2:輸入10個(gè)成績(jī),求最大值。,int i,x,max; max=0; for (i=1;imax) max=x; printf(max=%dn,max);,考慮: 求最小值,for語句,例2:輸入10個(gè)成績(jī),求最大值。,#include #include #include int main() int i,x,max; srand(unsigned) time(NULL); max=0; for (i=1;imax) max=x; printf(max=%dn,max); return 0; ,為方便調(diào)試程序,引入隨機(jī)函數(shù),減少輸入數(shù)據(jù)的繁瑣。 參見補(bǔ)充閱讀材料。,

6、循環(huán)嵌套,例3:顯示1!,2!,.,10!,int i, n, fac; for (n=1;n=10;n+) fac=1; for(i=1;i=n;i+) fac=fac*i; printf(%d!=%ldn,n,fac); ,循環(huán)嵌套,例4:求,int i,n, fac,sum=0; for (n=1;n=10;n+) fac=1; for (i=1;i=n;i+) fac=fac*i; sum=sum+fac; printf (1!+2!+.+10!=%ldn,sum);,循環(huán)嵌套,例4:求,int n,fac,sum=0; for (fac=1,n=1;n=10;n+) fac=fac*

7、n; sum=sum+fac; printf (1!+2!+.+10!=%ldn,sum);,又一種方法,利用階乘的遞推關(guān)系:n!=n*(n-1)! (n1),只需要一層循環(huán)。,例5:顯示九九乘法表,int i, j; for (i=1; i=9; i+) for (j=1; j=i; j+) printf(%d*%d=%2d , i, j, i*j); printf(n); ,改變循環(huán)狀態(tài),break語句退出循環(huán) 通常與選擇結(jié)構(gòu)配合,改變循環(huán)狀態(tài),continue語句 結(jié)束本次循環(huán) 通常與選擇結(jié)構(gòu)配合,概念:素?cái)?shù)(質(zhì)數(shù))是只能被1和本身整除的正整數(shù) 算法:對(duì)于正整數(shù)m(m2),用2m-1中的

8、每一個(gè)正整數(shù)i去除m,只要有一個(gè)能夠整除,就不是素?cái)?shù),例2.5是算法分析;例2.10是不好的流程圖;例2.15是其改進(jìn),以及N-S圖。 例5.9的流程圖與例2.15有一點(diǎn)兒不同。,教材例5.9 輸入正整數(shù),判斷是否素?cái)?shù),算法改進(jìn):用2m去除m,提高效率,例5.9 輸入一個(gè)正整數(shù),判斷是否素?cái)?shù) 擴(kuò)展:,例5.10 顯示區(qū)間 100,200 內(nèi)的所有素?cái)?shù),人的解決方法列方程求解 設(shè)有雞C只,兔R只,例6:雞兔問題籠中有雞、兔,頭共H個(gè),腳共F只。問有雞、兔各幾只?,例6:雞兔問題,計(jì)算機(jī)的解決方法將各種可能情況逐個(gè)試算,找到符合要求的結(jié)果,設(shè)雞C只(0CH) 若兔0只,則腳有.只 若兔1只,則腳有

9、.只 若兔2只,則腳有.只 . 若兔H只,則腳有.只,例6:雞兔問題,計(jì)算機(jī)的解決方法將各種可能情況逐個(gè)試算,找到符合要求的結(jié)果,雞0只,兔H只,則腳有.只F 雞1只,兔H-1只,則腳有.只F 雞2只,兔H-2只,則腳有.只 F . 雞C只,兔H-C只,則腳有.只=F,顯示結(jié)果 . 雞H只,兔0只,則腳有.只 F,例6:雞兔問題,計(jì)算機(jī)的解決方法將各種可能情況逐個(gè)試算,找到符合要求的結(jié)果,雞0只,兔H只,則腳有.只F 雞1只,兔H-1只,則腳有.只F 雞2只,兔H-2只,則腳有.只 F . 雞C只,兔H-C只,則腳有.只=F,顯示,結(jié)束 . 雞H只,兔0只,則腳有.只 F,例6:雞兔問題,int heads,feet,chicken,rabbit; printf(heads=); scanf(%d, ,閱讀程序練習(xí)for語句的靈活運(yùn)用,int value; for(value=36;value0;value/=2) printf(%3d,value);,int value; value=36; for( ;value0;value/=2) printf(%3

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論