2012-09-18 138 views
1

我有一個For循環的問題。我需要它來計算隨機數量的購物熱潮和金額,但按照下面的順序顯示它們。它也需要採取sprees的數量並且顯示它之前。德爾福2010年循環計數

目前它顯示的總數爲0,只顯示20個非隨機的sprees。

你已經贏得了總共3個瘋狂購物

在狂歡#1,你可能會花R100

在狂歡#2你可以花R341

在狂歡#3你可能會花R451

TotalCost:= 0;

總和:= 0;

ListHead := 'Max per spree is R500.00 Max number of sprees 20'; 
lstNumber.Items.Add(ListHead); 

    SpreeWon := 'You have won ' + inttostr(Sum) + ' shopping sprees'; 
    lstNumber.Items.Add(SpreeWon); 

for Count := 0 to 20 do 
begin 
    Sum := Random(Count); 
    Prize := Random(500) + 1; 
    ListItems := 'On spree # ' + inttostr(Sum) + ' you may spend R' + inttostr(Prize); 
    lstNumber.Items.Add(ListItems); 
    TotalCost := TotalCost + Prize; 
end; 
begin 
    Cost := 'Total prize value : R' + inttostr(TotalCost); 
    lstNumber.Items.Add(Cost); 
end; 
+0

@Ken這就是爲什麼我張貼的鏈接:它告訴你與標籤沒有標註你的問題,但在這個問題提多少你想要的答案揭示。也許我應該說得更清楚(: –

回答

2

您的代碼沒有按照您的要求進行操作。你正在顯示20個sprees,因爲你對它編寫了20個sprees,而不是隨機的sprees。

嘗試一些更喜歡這個:

ListHead := 'Max per spree is R500.00 Max number of sprees 20'; 
lstNumber.Items.Add(ListHead); 

Count := Random(20) + 1; 
TotalCost := 0; 

SpreeWon := 'You have won ' + IntToStr(Count) + ' shopping sprees'; 
lstNumber.Items.Add(SpreeWon); 

for I := 1 to Count do 
begin 
    Prize := Random(500) + 1; 
    TotalCost := TotalCost + Prize; 
    ListItems := 'On spree # ' + IntToStr(I) + ' you may spend R' + IntToStr(Prize); 
    lstNumber.Items.Add(ListItems); 
end; 

Cost := 'Total prize value : R' + IntToStr(TotalCost); 
lstNumber.Items.Add(Cost); 
+0

謝謝雷米。你的改變解決了問題。 – user1291092