1

これは、テーブル内で最大の数値を見つけ、その数値とそのインデックスを返す単純なプログラムのコードです。私の問題は、プログラムがネガで動作していないことです。

 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))

このコードは「33」を出力します。最大数は3で、3番目の位置にあります。数値を{1、-2、-3}のように設定すると、「-11」ではなく「0nil」が返されます。

ありがとう!

4

2 に答える 2

4

デフォルト値が間違っています。彼らはする必要があります

local maxcount = t[1]
local maxindex = 1

「0nil」を受け取っていたのは

  • maxindexif条件value > maxcountが真になるまでは未定義です。

  • デフォルトmaxcount値は0で、これはすべての負の数よりも大きくなっています。

于 2012-07-27T04:42:45.500 に答える
4

maxcount開始時にゼロではなく、大きな負の数に設定する必要があります。試す-math.huge

于 2012-07-27T04:42:56.757 に答える