c語(yǔ)言ch函數(shù)的嵌套調(diào)用和遞歸調(diào)用x

ID:39963241

大?。?39.13 KB

頁(yè)數(shù):32頁(yè)

時(shí)間:2019-07-16

c語(yǔ)言ch函數(shù)的嵌套調(diào)用和遞歸調(diào)用x_第1頁(yè)
c語(yǔ)言ch函數(shù)的嵌套調(diào)用和遞歸調(diào)用x_第2頁(yè)
c語(yǔ)言ch函數(shù)的嵌套調(diào)用和遞歸調(diào)用x_第3頁(yè)
c語(yǔ)言ch函數(shù)的嵌套調(diào)用和遞歸調(diào)用x_第4頁(yè)
c語(yǔ)言ch函數(shù)的嵌套調(diào)用和遞歸調(diào)用x_第5頁(yè)
資源描述:

《c語(yǔ)言ch函數(shù)的嵌套調(diào)用和遞歸調(diào)用x》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。

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

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

3、ll()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);doublevol_ball(void);doublevol_cylind(

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

5、

6、sel>3)//輸入非1~3,循環(huán)結(jié)束break;cal(sel);//輸入1~3,調(diào)用cal()}return0;}/*常用圓形體體積計(jì)算器的主控函數(shù)*/voidcal(intsel){switch(sel

7、){case1:printf("球體積為:%.2f",vol_ball());break;case2:printf("圓柱體積為:%.2f",vol_cylind());break;case3:printf("圓錐體積為:%.2f",vol_cone());break;}}2021/8/410//計(jì)算球體體積V=4/3*PI*r*r*rdoublevol_ball(){doubler;printf("請(qǐng)輸入球的半徑:");scanf("%lf",&r);return(4.0/3.0*PI*r*r*r);}//計(jì)算圓柱體積V=PI*r*r*hdoublevol_cyl

8、ind(){doubler,h;printf("請(qǐng)輸入圓柱的底圓半徑和高:");scanf("%lf%lf",&r,&h);return(PI*r*r*h);}//計(jì)算圓錐體積V=h/3*PI*r*rdoublevol_cone(){doubler,h;printf("請(qǐng)輸入圓錐的底圓半徑和高:");scanf("%lf%lf",&r,&h);return(PI*r*r*h/3.0);}2021/8/411遞歸(Recursion)函數(shù)直接或間接調(diào)用自己為遞歸unsignedintfact(unsignedintn) {if(0==n)return1;elsereturnn*f

9、act(n-1); }2021/8/4122021/8/413遞歸的實(shí)現(xiàn)遞歸(recursion)的定義調(diào)用自身的程序遞歸的基本思想問(wèn)題分解:把一個(gè)不能或不好解決的大問(wèn)題轉(zhuǎn)化為一個(gè)或幾個(gè)小問(wèn)題,再把這些小問(wèn)題進(jìn)一步分解成更小的小問(wèn)題,直至每個(gè)小問(wèn)題都可以直接解決。德羅斯特效應(yīng)—遞歸的視覺(jué)效應(yīng)2021/8/414遞歸應(yīng)用遞歸算法一般用于解決三類問(wèn)題:(1)數(shù)據(jù)的定義是按遞歸定義的。求階乘:n!=1×2×3×……×n或n!=n×(n-1)!Fibonacci函數(shù)(效率極其低下)Fact(n)=1

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

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

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