C語言_ch07_2_函數(shù)的嵌套調(diào)用和遞歸調(diào)用.pptx

ID:48735579

大?。?39.13 KB

頁數(shù):32頁

時間:2020-01-20

C語言_ch07_2_函數(shù)的嵌套調(diào)用和遞歸調(diào)用.pptx_第1頁
C語言_ch07_2_函數(shù)的嵌套調(diào)用和遞歸調(diào)用.pptx_第2頁
C語言_ch07_2_函數(shù)的嵌套調(diào)用和遞歸調(diào)用.pptx_第3頁
C語言_ch07_2_函數(shù)的嵌套調(diào)用和遞歸調(diào)用.pptx_第4頁
C語言_ch07_2_函數(shù)的嵌套調(diào)用和遞歸調(diào)用.pptx_第5頁
資源描述:

《C語言_ch07_2_函數(shù)的嵌套調(diào)用和遞歸調(diào)用.pptx》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫

1、2021/9/161上一節(jié)我們學(xué)到了函數(shù)的定義形參函數(shù)的聲明函數(shù)的調(diào)用實參函數(shù)的調(diào)用過程局部變量(包括形參)何時分配內(nèi)容、何時釋放內(nèi)存何時實參賦形參2021/9/162第7章用函數(shù)實現(xiàn)模塊化程序設(shè)計7.1為什么要用函數(shù)7.2怎樣定義函數(shù)7.3調(diào)用函數(shù)7.4對被調(diào)用函數(shù)的聲明和函數(shù)原型7.5函數(shù)的嵌套調(diào)用7.6函數(shù)的遞歸調(diào)用7.7數(shù)組作為函數(shù)參數(shù)7.8局部變量和全局變量7.9變量的存儲方式和生存期7.10關(guān)于變量的聲明和定義7.11內(nèi)部函數(shù)和外部函數(shù)2021/9/163函數(shù)的嵌套調(diào)用nestedfunction函數(shù)的嵌套調(diào)用:調(diào)用一個函數(shù)的過程中,又可以調(diào)用另一

2、個函數(shù)注意:C語言的函數(shù)定義是互相平行、獨立的,即函數(shù)不能嵌套定義2021/9/164嵌套調(diào)用的執(zhí)行過程main函數(shù)①調(diào)用a函數(shù)⑨結(jié)束a函數(shù)③調(diào)用b函數(shù)⑦②⑧b函數(shù)⑤④⑥2021/9/165例:設(shè)計一個常用圓形體體積計算器,采用命令方式輸入1、2、3,分別選擇計算球體、圓柱體、圓錐體的體積,并輸入計算所需相應(yīng)參數(shù)。分析:輸入1、2、3選擇計算3種體積,其他輸入結(jié)束計算設(shè)計一個控制函數(shù)cal(),經(jīng)它辨別圓形體的類型再調(diào)用計算球體、圓柱體、圓錐體體積的函數(shù)設(shè)計單獨的函數(shù)計算不同圓形體的體積2021/9/1663層結(jié)構(gòu),5個函數(shù)降低程序的構(gòu)思、編寫、調(diào)試的復(fù)雜度可

3、讀性好程序結(jié)構(gòu)main()cal()vol_ball()vol_cylind()vol_cone()程序結(jié)構(gòu)intmain(void){……cal(sel);}voidcal(intsel){……vol_ball();vol_cylind();vol_cone();}doublevol_ball(){……}doublevol_cylind(){……}doublevol_cone(){……}main()cal()vol_ball()vol_cylind()vol_cone()源程序#definePI3.141592654voidcal(intsel);doubl

4、evol_ball(void);doublevol_cylind(void);doublevol_cone(void);intmain(void){intsel;while(1){printf("1-計算球體體積");printf("2-計算圓柱體積");printf("3-計算圓錐體積");printf("其他-退出程序運行");printf("請輸入計算命令:");scanf("%d",&sel);if(sel<1

5、

6、sel>3)//輸入非1~3,循環(huán)結(jié)束break;cal(sel);//輸入1~3,調(diào)用cal()}return0;}/*常

7、用圓形體體積計算器的主控函數(shù)*/voidcal(intsel){switch(sel){case1:printf("球體積為:%.2f",vol_ball());break;case2:printf("圓柱體積為:%.2f",vol_cylind());break;case3:printf("圓錐體積為:%.2f",vol_cone());break;}}2021/9/1610//計算球體體積V=4/3*PI*r*r*rdoublevol_ball(){doubler;printf("請輸入球的半徑:");scanf("%lf",&r);retur

8、n(4.0/3.0*PI*r*r*r);}//計算圓柱體積V=PI*r*r*hdoublevol_cylind(){doubler,h;printf("請輸入圓柱的底圓半徑和高:");scanf("%lf%lf",&r,&h);return(PI*r*r*h);}//計算圓錐體積V=h/3*PI*r*rdoublevol_cone(){doubler,h;printf("請輸入圓錐的底圓半徑和高:");scanf("%lf%lf",&r,&h);return(PI*r*r*h/3.0);}2021/9/1611遞歸(Recursion)函數(shù)直接或間接調(diào)用自己為

9、遞歸unsignedintfact(unsignedintn) {if(0==n)return1;elsereturnn*fact(n-1); }2021/9/16122021/9/1613遞歸的實現(xiàn)遞歸(recursion)的定義調(diào)用自身的程序遞歸的基本思想問題分解:把一個不能或不好解決的大問題轉(zhuǎn)化為一個或幾個小問題,再把這些小問題進(jìn)一步分解成更小的小問題,直至每個小問題都可以直接解決。德羅斯特效應(yīng)—遞歸的視覺效應(yīng)2021/9/1614遞歸應(yīng)用遞歸算法一般用于解決三類問題:(1)數(shù)據(jù)的定義是按遞歸定義的。求階乘:n!=1×2×3×……×n或n!=n×(n-1

10、)!Fibonacci函數(shù)(效率極其低

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。
关闭