今天我們來提一提C語言中的函數,注意,這裡的函數可不是數學術語中的函數,不是自變數、因變數這種,而是一段程序。
且,該段程序是可以被另一段程序直接引用的,也可以叫做是子程序或者叫做子方法。
正如我每次在寫代碼的時候,都會率先寫好一個主函數,也就是int main(){},這就是一個主函數,那在該函數外的其他函數,就可以稱作為子函數了。
對函數定義的詳細講解
如下圖所示,不過關於int main(){}的話,其實它有一個返回值,也就是要用return 0寫出來的,之所以我這裡沒寫是因為Xcode默認返回值為0,不過為了嚴謹一些,還是寫上比較好。


我們一般常用的類型名有很多void、long、int等等等等。
我主要用的就是int,當然,看到這兒,有的小夥伴會有疑問,int main和void main的區別是什麼呢。
其實區別很簡單,可以看到int和void兩個就知道,關鍵區別在於這兩者。
int類型說明返回值為int,而void呢,就是沒有返回值。

不過我們一般在寫的時候,主方法普遍用int main(){},原因在於很多編譯器都是要求有返回值的,且默認返回值為0,而void呢是沒有返回值的,可能會產生一些問題。
正如mac上的Xcode一樣,用了void main之後就出現警告了,所以為了更好地移植代碼,所以我選擇使用int main(){}

具體實例
那話講了那麼多,看了那麼多,都不如實際給出幾道題來得有效,我這裡呢打算給出兩道題,也就是前段時間我提到過的,一道很簡單,就是對奇偶數的判斷,另一道則是輸出斐波那契數列,要求使用函數的形式做出這兩道題。
首先是奇偶數判斷,給出流程圖:

注意,為何我不把子函數放在主函數的後面呢,這裡的原因我之後會提到。
其實思路非常明確,就是先寫子函數,子函數的目的就是判斷奇偶數,那奇偶數的判斷條件我昨天也講過了,就是除以2取餘數,判斷是否為0,為0則為偶數,否則為奇數。
代碼實現:
#include<stdio.h>
void evenodd(int n){
if(n%2==0){//取余為0
printf("it is an evenn");
}
else{
printf("it is a oddn");
}
}
int main() {
//輸入一個整數,主要是用來判斷的
int number = 0;//定義一個整數
scanf("%d", &number);
evenodd(number);
}至於為什麼不把子函數這一塊給放在後面呢,原因在於:

C99它是不支持隱式聲明的,C語言啊是自上而下運行的,所以按照上圖這樣的順序運行下去,在主函數里,壓根就沒有定義過evenodd,所以解決辦法就是把evenodd的函數放到主函數前面去。
如下圖所示,結果測試也是正確的。

其次是斐波那契數列,給出流程圖:

與奇偶數判斷相比,斐波那契數列在子函數中較為複雜了些,但是在主函數中就很簡單了,直接調用即可。
代碼實現:
#include<stdio.h>
void fibonacci(){
int a = 0;
int b = 1;
int sum = 0;
for(int i = 0; i < 10; i++){
printf("%d ",sum);
sum = a+b;
b = a;
a = sum;
}
printf("n");
}
int main() {
fibonacci();
}結果測試:

總結
函數其實並不難,但是這也是一個需要掌握的方法,畢竟掌握了函數,在寫程序的時候就能加快速度,減少重複工作。
原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/274596.html
微信掃一掃
支付寶掃一掃