Lua表中的多个输入

Lua表中的多个输入,lua,lua-table,Lua,Lua Table,我是lua的新成员,我有一个任务,其中一个让我感到困惑的问题是: 当用户输入999分时,反复询问用户学生分数的程序将停止,然后程序应计算并显示输入的分数数、最高分数、最低分数和平均分数。如果用户输入的分数小于零或大于100,请确保显示错误消息 我已经在这里呆了整整一个星期了,仍然不知道该做什么,该在美国东部时间晚上11点59分到期。任何洞察力和方向都会很好 -如何在不断增长的表scores={}中输入多个值?其中,在用户输入999并结束重复循环后,大小由变量s的输入数给出。这其实是我最大的问题

我是lua的新成员,我有一个任务,其中一个让我感到困惑的问题是:

当用户输入999分时,反复询问用户学生分数的程序将停止,然后程序应计算并显示输入的分数数、最高分数、最低分数和平均分数。如果用户输入的分数小于零或大于100,请确保显示错误消息

我已经在这里呆了整整一个星期了,仍然不知道该做什么,该在美国东部时间晚上11点59分到期。任何洞察力和方向都会很好

-如何在不断增长的表scores={}中输入多个值?其中,在用户输入999并结束重复循环后,大小由变量s的输入数给出。这其实是我最大的问题

我的代码:

 local scores = {}, avg


   repeat
    io.write("Enter score(s)")
local s = tonumber(io.read())  --input and convert data type
    print(s, type(s))     --s value, check input type


if(s < 0 or s > 100) then
print("Error.")  
end



    until (s == 999)

for i = 0, #s, 1 do
sum = 0
if s then 
    sum = sum + s
end

end


-- -----------------------------------------------------------Attemps to find a way to put s values in scores table-----------------------------------------------------------------------------------------
--[[scores[#scores+1] = s  ----Attempt 1  
print (scores)

for i = 0, #s, 1 do    ----Attempt 2
    scores{s} = s[i] 
print (i, scores)                                                   --tried a multitude of different ways and
                                                                       --kept getting the same number printed once or memory location of last entered number
end

for i, s in ipairs (scores) do   --Attempt 3
print (i, s)
end

for i = 0, #s, 1 do
sum = 0
if s then 
    sum = sum + s
end

end --]]
 -- -----------------------------------------------------------------------------------------------------------------------------------------------------------------------

--[[function average(myTable)
local sum = 0

for i in scores do

sum = sum + i
end
return (sum / #scores)
end




print ("The number of values in the table"..#scores)
print ("The average of the scores is "..average(s))
print ("The max value in the table is "..math.max(s))           
print ("The minimum value in the table is "..math.min(s))


  table.maxn(scores), table.minn(scores)
--]]

io.write("Please press enter to continue")
io.read()
本地分数={},平均值
重复
io.写入(“输入分数”)
本地s=tonumber(io.read())--输入和转换数据类型
打印,类型--s值,检查输入类型
如果(s<0或s>100),则
打印(“错误”)
结束
直至(s==999)
对于i=0,#s,1 do
总和=0
如果是那么
sum=sum+s
结束
结束
----------------------------------------------------------------试图找到一种将s值放入分数表的方法-----------------------------------------------------------------------------------------
--分数【#分数+1】=s----尝试1
打印(分数)
对于i=0,#s,1做——尝试2
分数{s}=s[i]
印刷(我,分数)——尝试了多种不同的方式和方法
--保持打印一次相同号码或上次输入号码的存储位置
结束
对于ipairs中的i,s(分数)do--3次尝试
打印(i,s)
结束
对于i=0,#s,1 do
总和=0
如果是那么
sum=sum+s
结束
结束--]]
-- -----------------------------------------------------------------------------------------------------------------------------------------------------------------------
--[[函数平均值(myTable)
局部和=0
因为我在分数上做得很好
sum=sum+i
结束
返回值(总和/分数)
结束
打印(“表中的值数”。#分数)
打印(“分数的平均值为“.平均值”)
打印(“表中的最大值为“.math.max”)
打印(“表中的最小值为“.math.min”)
table.maxn(分数),table.minn(分数)
--]]
io.write(“请按enter键继续”)
io.read()

假设
s
不是
nil
(不可能在Lua表中存储
nil
),那么您的尝试#1应该有效。当你尝试这样做时,哪里出了问题?你不需要一个表格来积累这些特定的统计数据。您可以保留一个连续的计数、总和、最大值和最小值(顺便说一句,如果您在美国或加拿大提交作业,您可能应该将您的时钟更改为EDT,因此它将在美国东部时间晚上11:59之前一个小时到期)。假设
S
不是
nil
(无法在Lua表中存储
nil
)。尝试此操作时出现了什么问题?您不需要表来累积这些特定统计信息。您可以保留运行计数、总和、最大值和最小值。(顺便说一句,如果你在美国或加拿大提交作业,你可能应该将你的时钟改为美国东部时间,所以应该比美国东部时间晚上11:59早一个小时。)