在上週的課程利用了C++內建的函數來解決問題,本週將會帶領大家撰寫自己的函數
int n = strlen(str1);
if( strncmp(str1,str2,n) )
cout<<"Yee";
函數跟變數一樣, 使用之前需要事先宣告
回傳型態 函數名稱 ( 參數 )
int max( int x, int y );
回傳型態 | 函數名稱 | 參數 |
---|---|---|
int | max | int x,int y |
void
表示void
表示(可省略)void print( int d );
void nothing( );
回傳型態 | 函數名稱 | 參數 |
---|---|---|
void | int d | |
void | nothing | void |
函數可以傳遞陣列, 但是無法直接傳遞大小
double avg(int arr[], int N);
宣告完函數之後, 就能來撰寫函數的內容了! 在宣告的後方接一個大括號, 裡面的內容就是函數的內容
int max(int a,int b)
{
// max 函數的內容!
if( a > b ) ...
else ...
其他code
}
int main()
{
// main 函數的內容
}
陣列的範例
int sum(int a[],int N)
{
int s = 0;
for( int i=0 ; i<N ; ++i )
{
s += a[i];
}
...
}
int main()
{
int data[4] = {1,2,3,4};
cout<< sum( data , 4 ) ;
}
當函數完成計算之後, 使用return
就能回傳函數的計算結果
int max(int a,int b)
{
if( a > b )
return a;
return b;
}
int main()
{
int x,y;
cin >> x >> y;
cout << max(x,y) << endl;
}
如果回傳型態是void
, 則return
可以省略
void sayhi(string str)
{
if( str == "Nymphia" )
{
cout<<"hi!hi! "<<str;
return ; // 後面不用放東西
}
cout<<"hi! "<<str;
// 可以省略 return ;
}
變數的宣告與內容可以分開寫, 讓排版更整齊
int foo(int,int); //參數名字在這裡不重要
int yee(int a,int b); //可以省略
int main() { foo(1,2); yee(1,2); }
int foo(int a,int b)//這裡再給名字就好
{
return yee(a+1,b+1);
}
int yee(int c,int d) //前面的名字沒意義, 用這裡的為準
{
return c*d;
}
寫一個函數
int mid(int a,int b,int c)
可以回傳三個數字的中位數是什麼