使用陣列計算平均值的 Go 語言程式
在本教程中,我們將學習如何編寫一個 Go 語言程式,使用陣列計算數字的平均值。我們將在這個示例中建立兩個程式。在第一種方法中,我們使用使用者自定義函式來計算平均值,而在第二種方法中,我們使用 Go 的內建函式來查詢平均值。
方法一:使用陣列計算數字的平均值
在這種方法中,我們將建立一個單獨的函式並將陣列傳遞給它。該函式接受陣列作為引數,然後計算平均值並返回整數結果。
演算法
步驟 1 − 匯入 fmt 包。
步驟 2 − 定義名為 avgOfArray() 的函式。它接受陣列及其長度作為引數,並返回平均值的計算結果。
步驟 3 − 啟動 main() 函式。
步驟 4 − 初始化一個整數陣列並向其中儲存值。然後,在螢幕上列印陣列。
步驟 5 − 將陣列的長度儲存在一個名為 n 的變數中,並透過傳遞所需引數來呼叫 avgOfArray() 函式。
步驟 6 − 在函式中,使用for迴圈迭代陣列,並透過使用每個陣列元素更新 sum 變數來計算其總和。
步驟 7 − 計算出總和後,透過將總和除以陣列的長度來查詢平均值,並將結果儲存在一個名為 avg 的變數中。
步驟 8 − 將平均值儲存在一個名為 result 的變數中,並使用 fmt.Println() 函式在螢幕上列印它。
示例
使用陣列計算數字平均值的 Go 語言程式。以下程式碼說明了如何使用使用者自定義函式查詢陣列的平均值。
package main import "fmt" // defining a function to find average func avgOfArray(array [4]int, n int) float64 { var sum int = 0 var i int = 0 for i = 0; i < n; i++ { sum += (array[i]) } var avg float64 = float64(sum) / float64(n) return avg } func main() { arr1 := [4]int{10, 20, 30, 40} fmt.Println("The given array whose average we wish to calculate is:", arr1) var n int = len(arr1) // calling avgOfArray() function result := avgOfArray(arr1, n) fmt.Println("The average of the above mentioned array is:", result) }
輸出
The given array whose average we wish to calculate is: [10 20 30 40] The average of the above mentioned array is: 25
解釋
在這個程式中,在匯入 fmt 包並建立函式之後,我們呼叫 main() 函式,初始化一個整數陣列併為其賦值,並將陣列傳遞給函式。然後儲存獲得的結果並在螢幕上列印它。
方法二:使用內建函式查詢陣列的平均值
在這種方法中,我們將使用 Go 語言中的預定義函式來計算陣列元素的平均值。我們將使用的函式是:make()、append() 和 len()。
演算法
步驟 1 − 匯入 fmt 包。
步驟 2 − 建立 main() 函式。
步驟 3 − 使用 make() 函式建立一個容量為 0、長度為 5 的陣列。
步驟 4 − 初始化一個整數變數來儲存陣列變數的總和,並使用 append() 函式將整數值新增到陣列中。
步驟 5 − 使用 range() 函式迭代陣列,並透過向其中新增值來更新 sum 變數。
步驟 6 − 現在,要計算陣列的平均值,請將 sum 變數除以陣列的長度,並將結果儲存在 avg 變數中。
步驟 7 − 使用 fmt.Println() 函式在螢幕上列印最終結果。
語法
func make ([] type, size, capacity)
Go 語言中的make函式用於建立陣列/對映,它接受要建立的變數的型別、其大小和容量作為引數。
func len(v Type) int
len() 函式用於獲取任何引數的長度。它將一個引數作為資料型別變數(我們希望查詢其長度的變數)作為引數,並返回一個整數值,即該變數的長度。
func append(slice, element_1, element_2…, element_N) []T
append 函式用於向陣列切片新增值。它接受多個引數。第一個引數是要向其新增值的陣列,後跟要新增的值。然後,該函式返回包含所有值的最終陣列切片。
示例
使用內建函式查詢陣列平均值的 Go 語言程式。
package main import "fmt" func main() { // Create the array array := make([]int, 0, 5) array = append(array, 1, 2, 3, 4, 5) var sum int = 0 for _, val := range array { sum = sum + val } fmt.Println("The given array is:", array) // Calculate the average of array elements avg := sum / len(array) fmt.Println("Average of above array is:", avg) }
輸出
The given array is: [1 2 3 4 5] Average of above array is: 3
解釋
在這個程式中,在匯入 fmt 包並呼叫 main() 函式之後,我們初始化一個整數陣列併為其賦值。然後,透過使用 for 迴圈,我們計算陣列中每個元素的總和,並透過將總和除以陣列的長度來查詢平均值。
結論
我們已經成功編譯並執行了一個 Go 語言程式,使用陣列獲得平均值以及示例。在第一個示例中,我們建立了一個外部函式來查詢陣列的平均值,而在第二個示例中,我們使用 Go 中的預定義函式來獲得結果。