函式要先定義後使用(呼叫)
函式定義的一般形式:
返回值型別 函式名 ( 形參列表 )
注意:返回值型別如果沒有,則寫成void
形參列表如果沒有,則寫成void,或者不寫
例:輸出兩個數中較大的數
double max ( double x , double y )//返回值型別 函式名(形參列表)
函式呼叫的一般形式:
函式名
(實際參數列)
實際參數列:於形式引數必須在個數、型別、位置一一對應
例:
#includedouble max ( double x , double y ) void main()
第一種:按值傳遞
將計算出的實參的值傳給已經分配了儲存空間的形參,只有形參改變,實參並未被改變,函式再呼叫時直接使用形參。該方法只能傳輸乙個數值並不能傳遞多個數值。
例:輸出n的所有因子
#includeusing namespace std;
int yz(int x);
int main()
int yz(int x)
void swap(int *x,int *y)
第三種:引用傳遞
引用傳遞方式是在函式定義時在形參前面加上引用運算子
「&」 這種傳遞方式
既可以使得對形參的任何操作都能改變相應的資料,又使得函式呼叫顯得方便、自然。例:
#include using namespace std;
void swap(int&,int&);
int main()
void swap(int &x,int &y)
直接或者間接呼叫自身的函式稱為遞迴函式。它通常把乙個大型複雜問題層層轉化為乙個與原問題相似的規模較小的問題來求解。
遞迴定義:使問題向邊界條件轉化的規則。遞迴定義必須能使問題越來越簡單。
遞迴終止條件:也就是所描述問題的最簡單情況,它本身不再使用遞迴的定義。
遞迴演算法解題通常有三個步驟:
1)分析問題、尋找遞迴:找出大規模問題與小規模問題的關係,這樣通過遞迴使問題的規模逐漸變小。
2)設定邊界、控制遞迴:找出停止條件,即演算法可解的最小規模問題。
例:描述
從鍵盤輸入個任意位數的正整數,輸出它的位數。
輸入乙個正整數
輸出它的位數#includeusing namespace std;
int ws(int );
int main()
int ans=0;
for (i=1;i<=m;i++)
ans+=f[n][i];
cout<
解析: f[n][m]表示把n個蘋果分成m分的方案數,分為兩種情況。第一種是每份中的蘋果數都大於1,即不存在乙個盤中有乙個;和存在乙個盤中有乙個。因為允許有空盤子,所以最後求和輸出即可。
通過對函式的學習,發現了簡化程式的訣竅:就是把複雜的問題分工給下屬們(函式)。從而使程式的可行性和簡潔性大大提公升。相對於具體的函式學習來講,遞迴函式、引用傳遞和按位址傳遞屬於重點和難點,尤其是對於遞迴函式的學習,尤其摸不著頭腦。我想還是需要慢慢的積累,見識的題多了,會的方法多了,知識點自然也就穩固了。程式設計的知識涉獵面實在是廣,在不斷學習c++的過程中,自己也在不斷補充著數學等方面的知識。
AS函式複習
actionscript 3.0 中有兩種函式型別 方法 和函式閉包 方法 如果您將函式定義為類定義的一部分或者將它附加到物件的例項,則該函式稱為方法。函式閉包 如果您以其它任何方式定義函式,則該函式稱為函式閉包 隨機函式 var randomnumber number math.random 函式...
本週複習總結
1.軟體 是為完成某些特定功能而編制的乙個到多個程式檔案的集合 2.程式語言的發展 機器語言 組合語言 高階語言 3.編碼實現 源 編譯源 鏈結注意 1 在編譯源 的過程中,翻譯 解釋 程式比編譯程式的執行速度要慢 4.乙個簡單的程式設計一般包含分析問題,設計演算法,編制程式,除錯程式 5.任何解決...
SQL複習總結
1.索引,觸發器,事務,儲存過程各表示什麼意思?它們有什麼不同?2.distinct用法 語法 select distinct 列名稱 from 表名稱 3.模糊查詢 4.關於笛卡爾積 5.exists用法 6.sqlserver清除快取的實現方法 7.mysql資料庫自動備份四種方法 8.sql ...