fix average package

This commit is contained in:
Archie Fox
2025-01-30 20:55:42 +03:00
parent f9af59f4d1
commit bb93fd5d7b
3 changed files with 46 additions and 4 deletions

View File

@@ -2,7 +2,7 @@ package main
import (
"fmt"
"golang-book/head-first-go/chapter4/const/dates"
"headfirstgo/golang-book/chapter4/const/dates"
)
func main() {

View File

@@ -1,13 +1,21 @@
package main
import "fmt"
import (
"fmt"
"headfirstgo/headfirstgo/chapter5/datafile"
"log"
)
func main() {
numbers := [3]float64{71.8, 56.2, 89.5}
numbers, err := datafile.GetFloats("data.txt")
if err != nil {
log.Fatal(err)
}
var sum float64 = 0
for _, num := range numbers {
sum += num
}
fmt.Println(sum)
sampleCount := float64(len(numbers))
fmt.Printf("Average: %0.2f\n", sum/sampleCount)
}

View File

@@ -0,0 +1,34 @@
// Пакет datafile предназначен для чтения данных из файлов
package datafile
import (
"bufio"
"os"
"strconv"
)
// GetFloats читает значение float64 из каждой строки файла
func GetFloats(fileName string) ([3]float64, error) {
var numbers [3]float64
file, err := os.Open(fileName)
if err != nil {
return numbers, err
}
i := 0
scanner := bufio.NewScanner(file)
for scanner.Scan() {
numbers[i], err = strconv.ParseFloat(scanner.Text(), 64)
if err != nil {
return numbers, err
}
i++
}
err = file.Close()
if err != nil {
return numbers, err
}
if scanner.Err() != nil {
return numbers, scanner.Err()
}
return numbers, nil
}