2009-08-31 20 views
0
Private Sub Command1_Click() 
Dim x As Integer 
For x = 1 To 100 
    List1.AddItem (Int(100 * Rnd())) 
    If ((Int(100 * Rnd())) >= 10) Then 
     Print 
    Else 

    End If 
Next x 
End Sub 

回答

2

如果你想隨機數的範圍從10到99之前調用隨機化(),你需要以不同的方式計算他們一點。有90個不同的可能值,所以這就是你乘以Rnd()的值。然後添加的最低值,這是10:

Private Sub Command1_Click() 
    Dim x As Integer 
    For x = 1 To 100 
     List1.AddItem(Int(90 * Rnd()) + 10) 
    Next x 
End Sub 
2

我想你可能錯誤輸入了這段代碼,因爲我沒有看到你正在打印什麼。另外,一般來說,你應該把你的隨機數賦給一個臨時變量。現在,您添加到列表中的隨機數與您的if區塊中的不一樣。

+0

所以u能修改此代碼來生成100 2位隨機號? – compgeek 2009-08-31 16:57:40

1

看起來像是因爲您生成了一次隨機數,並將其添加到List1;然後您生成另一個,不同的隨機數並有條件地打印它。

你沒有對什麼數字加到List1上進行過濾,我不太清楚你打印的是什麼(我不是VB的人)。

1

該錯誤似乎分成兩部分。首先,你在你的列表中添加一個不同於你正在比較的數字。

第二個是你以錯誤的方式使用Rnd。請參閱http://msdn.microsoft.com/en-us/library/f7s023d2(VS.80).aspx的使用情況,但基本上,您的代碼的設置方式是生成一個介於0和100之間的數字。因爲rnd會返回一個數字。

發生了什麼事是你基本上是做100 * 0.5返回你50或100 * 0.01。如果你想有一個下限的100,你必須做這樣它會返回1.

CInt(Int((upperbound - lowerbound + 1) * Rnd() + lowerbound)) 

而且,請不要忘記使用賽第一輪