diff --git a/chapter6/average2/main.go b/chapter6/average2/main.go index 417e0bc..12e4176 100644 --- a/chapter6/average2/main.go +++ b/chapter6/average2/main.go @@ -2,9 +2,28 @@ package main import ( "fmt" + "log" "os" + "strconv" ) -func main() { - fmt.Println(os.Args) +func average(numbers ...float64) float64 { + var sum float64 = 0 + for _, number := range numbers { + sum += number + } + return sum / float64(len(numbers)) +} + +func main() { + arguments := os.Args[1:] + var numbers []float64 + for _, argument := range arguments { + number, err := strconv.ParseFloat(argument, 64) + if err != nil { + log.Fatal(err) + } + numbers = append(numbers, number) + } + fmt.Printf("Average: %.2f\n", average(numbers...)) }