2011-11-24 26 views
0

找不到類似的帖子,所以張貼我自己的問題。 我得到了真正的變量數組:重新排列在帕斯卡陣列,降

price = array([58.9],[38.7],[8.95],[28.3]) 

我需要訂購,上去下來,我的代碼一切正常,直到陣列的最後一個值,我知道即使爲什麼,但無法找到自己的解決方案。反正這裏的代碼:

Procedure orderarray; 
Var i,dz, j: Integer; 
    c :real; 
    v :string[25]; 

Begin 
dz := 1; 
For i := 1 to 3 do 
    Begin 
    For j:=i+1 to 4 do 
    if price[j]>price[dz] //searches for highest value in the array 
     then dz:=j; 
    c:=price[i]; price[i] := price[dz]; price[dz] := c; //switches current value with highest 
    End; 
+0

你應該把它變成答案,然後接受它。 – jmoreno

回答

1

我發現瞭解決我自己的問題。發佈它只是爲了防止任何人需要它。我需要DZ復位到我,不Ĵ

Procedure orderarray; 
Var i,dz, j: Integer; 
    c :real; 
    v :string[25]; 

Begin 
For i := 1 to 3 do 
    Begin 
dz:=i; 
    For j:=i+1 to 4 do 
    if price[j]>price[dz] //searches for highest value in the array 
     then dz:=j; 
    c:=price[i]; price[i] := price[dz]; price[dz] := c; //switches current value with highest 
    End; 

謝謝大家的幫助,也不會去沒有你的解決方案,反正。

0

需要DZ復位到j每次

for j:=i+1 to 4 do 
begin 
    dz := j; 
    if price[j]>price[dz] 
     ...; 
    c:=price[i]; ...; 
end 
+0

你確定你將dz設置爲j嗎? – Valery

+0

這沒有幫助:S – SinSoul

0

在你的樣品DZ仍將始終爲1,最後一個元素將永遠不會被移動,因爲它是小於第一。

+0

我明白,我自己,但如何安排我的程序,使其工作,我不知道。 – SinSoul