昨天我們討論的函式,是沒有返回數值的函式,只是單純傳入參數做運算後,直接輸出。但我們更多時候會需要把參數傳入函式,會返回一個數值,再利用那個數值繼續做後續的計算。所以,今天會來講有返回數值的函式!
我們一樣先來看一段程式碼:
#include<stdio.h>
float square(float);
int main(){
	float n, answer;
	printf("Please input a number>>");
	scanf("%f", &n);
	answer = square(n);
	printf("\n");
	printf("The answer is %.3f", answer);
	return 0;
} 
float square(float a){
	float A;
	A = a*a;
	return A;
}
輸出結果:
程式說明:
float square(float); 這個一樣是函式宣告,和昨天的程式碼不同的是,昨天的程式碼沒有返回數值,所以返回數值型態為 void ,今天的程式碼是會返回數值的,返回數值型態為 float(第一個 float),而小括號 () 裡面的依然是傳入參數的型態,在這裡也是 float 。square() 函式的部分:裡面有一行程式碼是 return A,這一行就是我們返回在函式內計算後的數值。answer = square(n);,這一行的意思就是,把經過函式計算後返回的值存在變數 answer 中,方便輸出。我們也可以把程式碼修改一下:
#include<stdio.h>
float square(float);
int main(){
	float n;
	printf("Please input a number>>");
	scanf("%f", &n);
	printf("The answer is %.3f", square(n));
	return 0;
} 
float square(float a){
	return a*a;
}
上面程式碼中,我們更改了原本函式多宣告一個變數 A 的地方,讓函式直接返回輸入函數的平方。也更改了主程式中多宣告變數 answer 的地方,使程式碼更精簡!
明天,就讓我們來講講遞迴!