fun plusMinus(arr: Array<Int>): Unit {
var counterPositive = 0
var counterNegative = 0
var counterZero = 0
for(i in 0 until arr.size) {
if(arr[i] > 0) {
counterPositive++
} else if(arr[i] < 0) {
counterNegative++
} else {
counterZero++
}
}
println(counterPositive)
println(arr.size)
val a = counterPositive/arr.size
println(a)
}
我试图解决简单的算法问题,但我面临着这个有趣的事情。所以,我试图找到数组中的正数、负数和零。然后把每个数除以数组的大小。然后打印出来,但是我的结果是0。但是当我调试代码时,我看到 counterPositive 是 4,arr.size 是 5,但是我得到的是 0,为什么?
你得到的是零,因为 counterPositive
, counterNegative
和 counterZero
初始化为 0
所以,该类型 Int
是推断出来的。
由于数组大小是一个 Int
两分法 Int
导致 Int
.
要解决这个问题,你需要使用一个叫做 Float
或 Double
.
val a = counterPositive.toFloat() / arr.size