2 回答

TA貢獻1893條經驗 獲得超10個贊
這非常有效,您只需指出切片的初始大?。?/p>
func main() {
var n int
var sumScores float32 = 0
fmt.Println("How many scores?") //ask user how many values
fmt.Scan(&n) //get how many values
scores := make([]uint, n, n)
for i := 0; i < n; i++ {
fmt.Printf("Scores: ") // ask for values
fmt.Scan(&scores[i]) // get values
sumScores = sumScores + float32(scores[i]) // sum values
}
fmt.Printf("Average: %f\n", sumScores/float32(n)) //average value
}
為了學習目的
您聲明scores切片的方式,它只是一個空切片,因此您可以先附加到它,然后掃描新生成位置中的數字。(但這肯定不是解決這個特定問題的方法)
func main() {
var n int
scores := []uint{}
var sumScores float32 = 0
fmt.Println("How many scores?") //ask user how many values
fmt.Scan(&n) //get how many values
for i := 0; i < n; i++ {
fmt.Printf("Scores: ") // ask for values
scores = append(scores, 0)
fmt.Scan(&scores[i]) // get values
sumScores = sumScores + float32(scores[i]) // sum values
}
fmt.Printf("Average: %f\n", sumScores/float32(n)) //average value
}

TA貢獻1797條經驗 獲得超6個贊
分數 := []uint{}
這是一個切片字面量,你應該使用 Golang 內置函數append來處理它。
就像 @no0ob 的第二個例子一樣,或者這個:
func main() {
var n int
var tmpVal uint
scores := []uint{}
var sumScores float32 = 0
fmt.Println("How many scores?") //ask user how many values
fmt.Scan(&n) //get how many values
for i := 0; i < n; i++ {
fmt.Printf("Scores: ") // ask for values
fmt.Scan(&tmpVal) // save input to tmpVal
scores = append(scores, tmpVal) // append tmpVal to scores
sumScores = sumScores + float32(scores[i]) // sum values
}
fmt.Printf("Average: %f\n", sumScores/float32(n)) //average value
}
- 2 回答
- 0 關注
- 199 瀏覽
添加回答
舉報