fix average package
This commit is contained in:
@@ -2,7 +2,7 @@ package main
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"golang-book/head-first-go/chapter4/const/dates"
|
"headfirstgo/golang-book/chapter4/const/dates"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
|||||||
@@ -1,13 +1,21 @@
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import "fmt"
|
import (
|
||||||
|
"fmt"
|
||||||
|
"headfirstgo/headfirstgo/chapter5/datafile"
|
||||||
|
"log"
|
||||||
|
)
|
||||||
|
|
||||||
func main() {
|
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
|
var sum float64 = 0
|
||||||
for _, num := range numbers {
|
for _, num := range numbers {
|
||||||
sum += num
|
sum += num
|
||||||
}
|
}
|
||||||
|
|
||||||
fmt.Println(sum)
|
sampleCount := float64(len(numbers))
|
||||||
|
fmt.Printf("Average: %0.2f\n", sum/sampleCount)
|
||||||
}
|
}
|
||||||
|
|||||||
34
chapter5/datafile/floats.go
Normal file
34
chapter5/datafile/floats.go
Normal 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
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user