--1.table.sort()
am = {"cc","nn","ll","dd"}
arr = function ()
for i =,#am do
print(i..","..am[i])
end
end
table.sort(am)
arr() --2.冒泡排序的另外一种写法
function bubble_sort(array)
local tmp =
for i =,#array- do
for j =,#array-i do
if array[j]>array[j+] then
tmp = array[j]
array[j]=array[j+]
array[j+] = tmp
end
end
end
end
function main(...)
local arr = {,,,,,,,,,}
bubble_sort(arr)
for i,v in pairs (arr) do
print("排序后的结果为:",i.."->"..v)
end
end
main()
--3.按降序进行排列
tabl={"b", "a", "g", "c"}
sortFunc = function(a,b) return a<b end
table.sort(tabl,sortFunc)
print(table.concat(tabl,",")) --4.获得table中最大值的例子
function maxTable(t)
local temp = nil
for k,v in pairs(t) do
if(temp==nil) then
temp = v
end
if temp<v then
temp = v
end
end
return temp
end
tab = {[]=,[]=,[]=,[]=,[]=}
print("该表中的最大值为:",maxTable(tab)) --5.创建自己的迭代器
array2 = {"Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"} function elementIterator2(countTable)
local inde =
local coun1 = #countTable --获得其长度
return function() --匿名函数
inde = inde+
if inde<=coun1 then
return countTable[inde]
end
end
end for element in elementIterator2(array2) do
print(element)
end --6.一个简单的例子来实现迭代,实现数字n的平方
function square(iteratorMaxCount,currentNumber)
if currentNumber<iteratorMaxCount then
currentNumber = currentNumber+
return currentNumber,currentNumber*currentNumber
end
end
for i ,n in square ,, do
print(i,n)
end --7.定义一个函数,传入两个参数并相加,相减,相乘,相除,取模,返回他们的运行结果
function mathB(a,b)
c1 = a+b
c2 = a-b
c3 = a*b
c4 = a/b
c5 = a%b
return c1,c2,c3,c4,c5
end i =
j =
p1,p2,p3,p4,p5 = mathB(i,j)
print(p1)
print(p2)
print(p3)
print(p4)
print(p5) --8.定义一个函数利用循环让这个函数能够计算n的阶乘
t = function(n)
local i =
if n < then
return
end
repeat i = n*i
n = n-
until n ==
print(i)
end
print(t()) --9.斐波那契数列
function fb(i)
if i<= and i> then
return
else
local j = fb(i-)+fb(i-)
return j
end
end
i =
while i<= do
print("想得到的斐波那的第"..i.. "个数是:"..fb(i))
i = i+
end --10.输出三角形的形状
for x = ,, do
local j =""
for y = ,, do
if y<=x then --y>=x 变成倒三角了
j = j.."<>"
end
end
print(j)
end --11.9*9乘法表
for i = , do
local s = ""
for j = , do
if j<=i then
n = j*i
if n <= then
n = ""..n
end
s = s..j.."x"..i.."="..n.." "
end
end
print(s)
end --12.function 可以以“匿名函数”的方式通过参数传递
function testFun(tab,fun)
for k,v in pairs(tab) do
print(fun(k,v))
end
end
tab = {key1 = "value1",key2 ="value2",key3 = "value3",key4 = "value4"}
testFun(tab,function(key,value)
return key.."="..value
end
) --13.冒泡排序法 排列数组的10个元素(从大到小进行排列)
sz = {,,,,,,,,,}
i =
j =
while i < (#sz) do
while j <=((#sz)-i) do
if sz[j]<sz[j+] then
sz[j],sz[j+] = sz[j+],sz[j] --实现2个数的交换
end
j = j+
end
j = --一轮比较完,进行 第二轮的比较
i = i +
end
for k,v in pairs(sz) do
print(k.."键的值为:"..v)
end --14.用table.sort() 进行排序
am = {"b","a","f","c"}
array = function()
for i =,#am do
print(i..","..am[i])
end
end
table.sort(am)
array()
--***********另外一种************
am = {"b","a","f","c"}
table.sort(am)
for k,v in pairs(am) do
print(k.."对应的值为:"..v)
end
--按降序进行pail
tab1={"a","g","b","p"}
sortFunc = function(a,b)
return b<a
end
table.sort(tab1,sortFunc)
print(table.concat(tab1,",")) --p,g,b,a --15.lua中我们可以将“函数作为参数”传递给“函数”>> 函数可以作为数据赋值,也可以作为参数进行传递
PrintMy = function(parm)
print("打印函数-print",parm,"????")
end
function add(num1,num2,functionP)
re = num1+num2
functionP(re)
end
PrintMy()
add(,,PrintMy) --16.求几个数的平均值(将可变参数赋值给一个变量)
function average(...)
resule =
local arg={...} --这个地方一定要添加(这个参数是 "不带" 个数 )
for i,v in ipairs(arg) do
result = resule+v
end
print("总共传入"..#arg.."个数")
print("平均值为",result/#arg)
end
average(,,,,,) --17.将阿拉佰数字改成汉字形式的数字
print("^^^^^^^^将阿拉佰数字改成汉字形式的数字^^^^^^^^^^^")
local function NumToCn(num)
local size = #tostring(num) --先转换为字符串,然后 求其长度
local Cn = ""
local StrCn = {"一","二","三","四","五","六","七","八","九"}
for i =,size do
Cn = Cn..StrCn[tonumber(string.sub(tostring(num),i,i))]
end
return Cn
end
print(NumToCn()) --竟然不能写很多函数,如果是很多的话,会报错 --18.求阶乘的另外一种写法
function fb(n)
if n == then
return
else
return n *fb(n-)
end
end
print(fb())
fb1 =fb --函数值可以被赋值,赋值的和原来的具有一样的用法
print(fb1()) --19. 看一下下面2个输入法的区别
print(string.gsub("hello*js",".-","=")) --=h=e=l=l=o=*=j=s= 9
s =string.gsub("hello*js",".-","=")
print(s) --=h=e=l=l=o=*=j=s= --20.table 中的元素 去重 操作
tableA = {,,,,,,,,,,,,,,,,}
function table_unique(t)
local check ={} --定义一个空表
local n ={} --在定义一个空表
for k,v in pairs(t) do
if not check[v] then
n[k] = v
check[v]=v
end
end
return n
end
for k,v in pairs (table_unique(tableA)) do
print("value is:",v)
end --21.return 关键字的作用就是在函数中返回某些值
function ha(a,b)
x=a*b
y=b*b
return x,y
end
i =
j =
d,c = ha(i,j)
print(d.."和"..c) --22.一个数90-100代表优秀,80-90代表良好,以此类推
local mathScore =
if <=mathScore and mathScore<= then
print("优秀")
elseif <=mathScore and mathScore<= then
print("良好")
elseif <= mathScore and mathScore<= then
print("及格")
else
print("不及格")
end --23.写一个脚本判断两个数是否都为小于或等于200的奇数(不能被2整除的数)
local a,b = ,
if a% == and a<= and b<= and b% == then
print("ab 两个数都为小于等于200的奇数")
elseif a%== and a<= then
print("a为小于等于200的奇数")
elseif b%== and b< then
print("b为小于等于200的奇数")
else
print("ab 两个数不是小于等于200的奇数")
end --24.循环语句的嵌套使用
--有 1,2,3,4四个数字,能组成多少个互不相同且无重复数字的 三位数,并输出在屏幕上面
for i = , , do
for j = ,, do
for p = , , do
if i ~= j and i ~= p and j ~= p then
print(i..j..p)
end
end
end
end
--结果 太多读者自己打印 --25.9*9乘法表的另外的一种输出方式
for m=, do -- for循环1到9
local s = "" -- 定义一个用来输出的字符串S
for n=, do -- 内层循环1到9
if n <= m then -- 实现乘法表阶梯增打印效果
s = s..m.."x"..n.."="..m*n.."|"-- ..表示字符串拼接 end
end
print(s)
end
--[[
1x1=1|
2x1=2|2x2=4|
3x1=3|3x2=6|3x3=9|
4x1=4|4x2=8|4x3=12|4x4=16|
5x1=5|5x2=10|5x3=15|5x4=20|5x5=25|
6x1=6|6x2=12|6x3=18|6x4=24|6x5=30|6x6=36|
7x1=7|7x2=14|7x3=21|7x4=28|7x5=35|7x6=42|7x7=49|
8x1=8|8x2=16|8x3=24|8x4=32|8x5=40|8x6=48|8x7=56|8x8=64|
9x1=9|9x2=18|9x3=27|9x4=36|9x5=45|9x6=54|9x7=63|9x8=72|9x9=81|
--]]

最新文章

  1. mac 下配置 git
  2. [官方作品] 关于ES4的设首页问题
  3. BZOJ2432 [Noi2011]兔农
  4. iOS开发——UI进阶篇(十八)核心动画小例子,转盘(裁剪图片、自定义按钮、旋转)图片折叠、音量震动条、倒影、粒子效果
  5. 安全协议:SSL、TSL、SSH概述
  6. java中使用split分割字符串一个有趣的现象
  7. Div自适应高度的方法
  8. PHP 转换snmp的时间格式
  9. centos 6.4/redhat 6.4 安装gitlab
  10. dell 网络产品线
  11. sql修改表结构、临时表应用
  12. HTML 转义字符
  13. C#实现对邮件的发送
  14. JQuery插件开发初探——结构熟悉
  15. Sass入门:第四章
  16. 列表ListBox、ListView、GridView 排序
  17. [原创]CobaltStrike &amp; Metasploit Shellcode一键免杀工具
  18. python 遍历list并删除部分元素
  19. js 模块化规范
  20. 【BZOJ1970】[AHOI2005]矿藏编码(模拟)

热门文章

  1. 使用微信JSSDK实现图片上传
  2. [dfs] UVALive 3667 Ruler
  3. ubuntu下安装jre
  4. 配置hadoop集群一
  5. Android showDialog时报错requestFeature() must be called before adding content
  6. 一、Linux文件权限与目录配置
  7. shell脚本-基础
  8. 一个不错的jquery插件模版
  9. [Swift通天遁地]二、表格表单-(15)自定义表单文本框内容的格式
  10. JavaScript学习五