C语言程式设计--函数

C语言程式设计--函数

ID:38834063

大小:342.82 KB

页数:28页

时间:2019-06-20

C语言程式设计--函数_第1页
C语言程式设计--函数_第2页
C语言程式设计--函数_第3页
C语言程式设计--函数_第4页
C语言程式设计--函数_第5页
资源描述:

《C语言程式设计--函数》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、C語言程式設計--函數本章學習重點7-1函數的概念7-2函數的基本形式7-3函數的呼叫7-4遞迴函數7-5常用的數學函數7-6儲存類別函數的概念函數的優點分工合作較好的可讀性便於修改、除錯提高撰寫程式的效率函數可分成兩種型態函數庫中原先就有的現成函數使用者依程式需求設計的函數函數的基本形式函數定義的語法傳回值型態函數名稱(參數傳遞)參數傳遞型態{函數主體}範例Ch7_2Ch7_2兩數相加的函數1#include2voidmain()3{4inta=3,b=2,c;5intsum(in

2、t,int);6c=sum(a,b);7printf("sum(%d,%d)=%d",a,b,c);8}9intsum(x,y)10intx,y;11{12intz;13z=x+y;14return(z);15}程式執行結果說明sum(3,2)=5範例Ch7_2主程式副程式3322abxy55cz函數呼叫的語法語法函數名稱(參數);說明函數如果不需要呼叫參數,則括號內的參數可以省略。若參數包含一個以上時,需以逗號隔開。呼叫與被呼叫的函數其參數是相對應的,且型態要一致。函數的傳回值函數的傳回值,有以

3、下幾種情況:函數沒有傳回值,傳回值型態為void函數傳回值為整數(int)時,可以省略函數有傳回值時,可以在傳回值上做運算函數的傳回值型態應該和return中的型態要一樣使用return可以立即結束函數的執行Ch7_3計算圓面積的函數1#include2doublearea(r)3floatr;4{5doubles;6s=r*r;7return(s);8}9voidmain()10{11floatr;12doublea;範例Ch7_3程式執行結果Pleaseinputthecircl

4、er:5Thecircleareais78.540000printf("Pleaseinputthecircler:");14scanf("%f",&r);15a=area(r)*3.1416;16printf("Thecircleareais%f",a);17}範例Ch7_3範例Ch7_4Ch7_4函數求絕對值與平方值1#include2voidmain()3{4intabs(int);5intsqrt(int);6inta=–3,b,c;7b=abs(a);8c=sqrt

5、(a);9printf("theabsofa=%d",b);10printf("thesqrtofa=%d",c);11}12intabs(intx)13{14inty;if(x<0)y=–x;elsey=x;returny;}intsqrt(intz){ints;s=z*z;returns;}範例Ch7_4程式執行結果theabsofa=3thesqrtofa=9範例Ch7_4遞迴函數遞迴函數是指在程式中直接或間接呼叫該程式本身。程式中使用遞迴函數,將可處理須重覆運算的問題。費氏數列費氏數列

6、的規則如下所示:費氏數列的數學表示式:0ifn=0Fib(n)=1ifn=1fib(n–1)+fib(n–2)ifn>=2n0123456…fib(n)0112358…範例Ch7_5Ch7_5遞迴函數求費氏數列1#include2intfib(intn)3{4if(n==0)return(0);5elseif(n==1)return(1);6elsereturn(fib(n–1)+fib(n–2));7}8voidmain()9{10intfib(int);11ints;12s=fi

7、b(6);13printf("Thefib(6)=%d",s);14}程式執行結果說明:Thefib(6)=8範例Ch7_5階乘函數定義如下:1ifn=0n*fact(n–1)ifn>=1說明:fact(n)3!=3*2!=3*2*1!=3*2*1*0!=3*2*1*1=6fact(3)=3*fact(2)=3*2*fact(1)=3*2*1*fact(0)=3*2*1*1=6範例Ch7_7Ch7_7利用遞迴函數求n階乘1#include2voidmain()3{4intfact

8、(int);5intn;6printf("請輸入n階乘:");7scanf("%d",&n);8printf("%d!=%d",n,fact(n));9}10intfact(intn)11{12if(n==0)return(1);13elsereturn(n*fact(n–1));14}程式執行結果說明:請輸入n階乘:66!=7206!=6*fact(5)=6*5*fact(4)=6*5*4*fact(3)=6*5*4*3*fact(2)=6*5*4

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。