这是我的一个简单程序的代码,它找到一个表中最大的数字,并返回数字和它的索引。我的问题是程序没有使用否定。
numbers = {1, 2, 3}
function largest(t)
local maxcount = 0
local maxindex
for index, value in pairs(t) do
if value > maxcount then
maxcount = value
maxindex = index
end
end
return maxcount, maxindex
end
print(largest(numbers))
这段代码打印出“3 3”。最大的数字是3,它位于第3位。当我将数字设置为{-1,-2,-3}时,它返回“0 nil”而不是“-1 1”。
谢谢!
答案 0 :(得分:4)
您的默认值是错误的。 他们应该是
local maxcount = t[1]
local maxindex = 1
你收到的是“0无”,因为
maxindex
为真之前, value > maxcount
未定义。
默认maxcount
值为0,并且大于所有负数。
答案 1 :(得分:4)
maxcount
必须在开始时设置为较大的负数,而不是零。试试-math.huge