# 函式 ## 介紹: 由[判斷質數](https://chiscoj.com/problem/b011)這題舉例: 你可能會寫成這樣: ```cpp #include<stdio.h> int main(){ int n; while(scanf("%d",&n)!=EOF){ int flag=1; for(int i=2;i*i<=n;i++){ if(n%i==0){ printf("No\n"); flag=0; break; } } if(flag){ printf("Yes\n"); } } } ``` 但其實你也可以寫成這樣: ```cpp #include<stdio.h> bool check(int n){ for(int i=2;i*i<=n;i++){ if(n%i==0){ return 0; } } return 1; } int main(){ int n; while(scanf("%d",&n)!=EOF){ if(check(n)){ printf("Yes\n"); }else{ printf("No\n"); } } } ``` 而下面這個部分就是我們自定義的函式 ```cpp bool check(int n){ for(int i=2;i*i<=n;i++){ if(n%i==0){ return 0; } } return 1; } ``` 函示的功用就是讓你的程式碼變得淺顯易懂 --- ## 宣告 利用資料型態宣告。 | 資料型態 | 回傳 | | -------- |:--------------:| | void | 不需要回傳參數 | | int | 需要回傳整數 | | folat | 需要回傳浮點數 | | double | 需要回傳浮點數 | | char | 需要回傳浮點數 | 舉例: ```cpp void function1(){ return; } int function2(){ return 整數 } float funtion3(){ return 浮點數 } . . . . ``` --- 我們宣告的時候可以傳我們想要的變數進去。 ```c #include<stdio.h> void f(int n){ printf("%d",n); } int main(){ int n=10; f(n); } ``` 輸出 ``` 10 ``` --- 我們也可以傳兩個變數進去。 ```c #include<stdio.h> void f(int n,int n2){ printf("%d &d",n,n2); } int main(){ int n=10,n2=20; f(n); } ``` 輸出 ``` 10 11 ``` --- ## 宣告位置 有兩種 第一種 ```c= #include<stdio.h> void f(int n){ printf("%d",n); } int main(){ int n; scanf("%d",&n); f(n); } ``` 第二種 ```c= #include<stdio.h> void f(int n); int main(){ int n; scanf("%d",&n); f(n); } void f(int n){ printf("%d",n); } ``` 因為編譯器是由上往下開始編譯 所以這樣會報錯 ```c= #include<stdio.h> int main(){ int n; scanf("%d",&n); f(n); } void f(int n){ printf("%d",n); } ``` ###### tags: `中和高中`