目的
將常使用的程式碼包裝起來,變成一個可以再次重複利用的程式碼
function主要分為兩個部分
1.function declaration(函式宣告)→告訴電腦function的樣子
2.function definition(函式定義)→告訴電腦function的內容
Note:
c的副檔名可以不宣告function就直接呼叫;cpp的副檔名則需宣告才能使用(這意味著如果程式以c++語言撰寫時,需要宣告函式)!(見→function範例1.c、function範例1.cpp)
2.function definition(函式定義)→告訴電腦function的內容
Note:
c的副檔名可以不宣告function就直接呼叫;cpp的副檔名則需宣告才能使用(這意味著如果程式以c++語言撰寫時,需要宣告函式)!(見→function範例1.c、function範例1.cpp)
(點圖放大)
(點圖放大)
function definition要寫在沒有任何大括號包起來的地方,也就是Global Area全域區域
function名稱的命名規則跟變數相同
function架構
int main(void)
{
function回傳型態 function名稱(Variables型態); //function declaration
int x = 0;
printf("%d\n", function名稱(x));
return 0;
}
int function名稱(Variables型態 Variables名稱) //function definition
{
function內容
}
{
function回傳型態 function名稱(Variables型態); //function declaration
int x = 0;
printf("%d\n", function名稱(x));
return 0;
}
int function名稱(Variables型態 Variables名稱) //function definition
{
function內容
}
程式範例
#include <stdio.h>
#include <stdlib.h>
int main()
{
int TileN(int, int, int, int), x, y, u, t;
while(scanf("%d%d%d%d", &x, &y, &u, &t) !=EOF)
{
printf("%d\n",TileN(x,y,u,t));
}
return 0;
}
int TileN(int RoomW, int RoomH, int TileW, int TileH)
{
int x = RoomW / TileW;
int y = RoomH / TileH;
x *= y;
int u = RoomW / TileH;
int t = RoomH / TileW;
u *= t;
if(x>u)
{
return x;
}
else
return u;
}
#include <stdlib.h>
int main()
{
int TileN(int, int, int, int), x, y, u, t;
while(scanf("%d%d%d%d", &x, &y, &u, &t) !=EOF)
{
printf("%d\n",TileN(x,y,u,t));
}
return 0;
}
int TileN(int RoomW, int RoomH, int TileW, int TileH)
{
int x = RoomW / TileW;
int y = RoomH / TileH;
x *= y;
int u = RoomW / TileH;
int t = RoomH / TileW;
u *= t;
if(x>u)
{
return x;
}
else
return u;
}
程式意義
設計一個function,名稱為TileN,分別以RoomW及RoomH代表房間的寬及長;以TileW及TileH代表地磚的寬及長。假設地磚不可分割,所有地磚排列方式需一致,則TileN會return該房間可貼的最多地磚數量。
沒有留言:
張貼留言