看板 Visual_Basic 關於我們 聯絡資訊
※ 引述《zero1590 (小白)》之銘言: : 各位前輩好,我想產生4個亂數, : 每個亂數不能一樣, : 我想了一個晚上, : 做出來以下的程式... : dim a,i,j as integer : dim take() as integer : Randomize() : For a = 0 To 3 : take(a) = Int(Rnd() * 10) + 1 : Next : For i = 3 To 1 Step -1 : For j = i - 1 To 0 Step -1 : Do While take(i) = take(j) : take(j) = Int(Rnd() * 10) + 1 : Loop : Next : Next : label1.text=take(0) & " " & take(1) & " " & take(2) & " " & take(3) : 這個程式的瑕疵在於take(3)和take(2)絕對不重複, : 但是take(3)和(take(1)及take(0))會產生重複, : take(2)也可能會和take(0)重複, : 這個問題是因為i跑到2之後1跟0的值可能會產生改變 : 但是不會回去比對是否跟3的值一樣, : i跑到1的時候0的值可能會產生改變, : 但是不會回去比對2跟3的值, : 問題就再於...怎麼樣才能使用迴圈, : 然後能保證它不會重複出現啊~!!! Dim a, i, j As Integer Dim take(3) As Integer Randomize() Label1.Text = "" For i = 0 To 3 For j = 0 To i Do While a = take(j) a = Int(Rnd() * 10) + 1 j = 0 Loop Next take(i) = a Label1.Text &= take(i) & " " Next Label1.Text &= vbNewLine 改寫了一下,有問題再丟我水球或寄站內信吧 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 222.156.10.204 ※ 編輯: rike 來自: 222.156.10.204 (04/13 07:59)
zero1590:感謝~~~!!! 04/13 18:21