2014-03-12 89 views
1

我寫了一個Lua代碼來安排一個列表,但是當我在列表中輸入任意兩位小數的數字爲10,20等時,變量'ordenado'總是取值1,儘管它是否滿足條件與否。Lua變量問題

valor = {} 
ordenado = 0 

function inicializar() 
    for i = 1,10 do 
    print ("Introduzca el valor "..i..":") 
    valor[i] = io.read() 
    end 
end 

function verificar() 
    for i = 2, #valor do 
    if valor[i]>valor[i-1] then 
     ordenado = ordenado + 0 
    else 
     ordenado = ordenado + 1 
    end 
    print ("actual: "..valor[i].." \nanterior: "..valor[i-1].."\nordenado:"..ordenado.."\n") 
    end 
end 

function imprimir() 
    if ordenado == 0 then 
    print "La lista esta ordenada" 
    else 
    print "La lista no esta ordenada" 
    end 
end 

a = inicializar() 
a = verificar() 
a = imprimir() 

該Lua版本是5.2。

+1

你打算用'ordenado = ordenado + 0'這樣的語句做什麼? – 2014-03-12 15:36:15

+2

使用'valor [i] = tonumber(io.read())'得到數字,而不是字符串 –

+0

faranwath:這是因爲下一個函數,如果列表被安排然後ordenado只取值0和程序打印名單是arrenged。對不起,用西班牙語寫代碼 – Dominuskernel

回答

1

該行valor[i] = io.read()存儲字符串valor[i]。作爲字符串,"2" > "10"

+0

如果我寫'valor [i ] = tonumber(io.read())'? – Dominuskernel

+0

@Dominuskernel,可能不是。嘗試一下。 – lhf