我试图创建随机等级并将它们添加到test_scores
数组。然后计算平均值。不匹配的类型float64和int
这个程序:
package main
import (
"fmt"
"math/rand"
)
func main() {
i := 0
var test_scores [5]float64
for i < len(test_scores) {
test_scores[i] = rand.Float64()
i++
}
fmt.Println(test_scores)
var total float64 = 0
i = 0
for i < len(test_scores) {
total += test_scores[i]
i++
}
fmt.Println(total)
fmt.Println(total/len(test_scores))
}
生产:
main.go:24: invalid operation: total/5 (mismatched types float64 and int)
这一个正常工作:
package main
import (
"fmt"
"math/rand"
)
func main() {
i := 0
var test_scores [5]float64
for i < len(test_scores) {
test_scores[i] = rand.Float64()
i++
}
fmt.Println(test_scores)
var total float64 = 0
i = 0
for i < len(test_scores) {
total += test_scores[i]
i++
}
fmt.Println(total)
fmt.Println(total/5)
}
唯一的区别是,在最后一行,我m使用固定的5
和非工作人员,我正在使用len(test_scores)
呼叫。
Len还返回一个整数,所以怎么了?
你通常应该使用切片而不是数组。 – JimB
“这个程序崩溃”是无益的。提问时请包含更多信息。 [我已将错误信息编辑为您的问题。] –