Lua最大数字查找器

以下是我的简单程序代码,可以找到表中的最大数,并返回该数及其索引。我的问题是该程序不能处理负数。

 numbers = {1, 2, 3}

 function largest(t)
   local maxcount = t[1]
   local maxindex = 1
   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个位置。当我将numbers设为{-1,-2,-3}之类时,它返回“0 nil”,而不是“-1 1”。

谢谢!

点赞
用户527776
用户527776

你的默认值是错误的。

正确的应该是

local maxcount = t[1]
local maxindex = 1

之所以出现 "0 nil" 是因为

  • 直到 value > maxcount 成立时才定义 maxindex

  • 默认的 maxcount 值为0,比所有负数都大。

2012-07-27 04:42:45
用户1086804
用户1086804

maxcount必须在开始时设置为较大的负数,而不是零。尝试使用-math.huge

2012-07-27 04:42:56