package main
import "fmt"
func main() {
////1. 传n个成绩
//sum , avg , count := getScore(12,46,17,79,100)
//fmt.Printf("学生公用%d门成绩,总成绩为%.2f ,平均成绩为%.2f", count, sum ,avg)
////2.传入一个切片
//scores := []float64{12,46,17,79,100}
//sum , avg , count = getScore(scores...)
//fmt.Printf("学生公用%d门成绩,总成绩为%.2f ,平均成绩为%.2f", count, sum ,avg)
//接下来再传入一个string类型的参数:当可变参数有多个类型的参数的时候,只能有一个可变参数,可变参数作为lastest parameter
scores := []float64{12,46,17,79,100}
sum , avg , count, user := getScore2("lucy",scores...)
fmt.Printf("学生%s共有%d门成绩,总成绩为%.2f ,平均成绩为%.2f",user, count, sum ,avg)
}
func getScore(scores ... float64) (sum float64, avg float64, count int) {
for _, score := range scores{
sum += score
count ++
}
avg = sum /float64(count)
return
}
func getScore2(name string , scores ...float64)(sum float64, avg float64, count int, user string){
user = name
for _,score := range scores{
sum += score
count ++
}
avg = sum/float64(count)
return
}