隨機產生K個不相同的整數,顯示最大數

來源:互聯網
上載者:User

                 分析一下這個題,一.產生K個不相等的整數。二.排序,找出其中最大的。三.顯示。具體來講呢主要要注意這麼幾個問題,1.產生隨機數,定義數組,依次產生每個數。2.處理不重複問題,首先你要膽兒大,假設數組產生的第一個數就是最大的,然後依靠迴圈挨個和之後的數組中的每個數比較,得出最大的數。比較過程中,就會出現兩種情況,一是沒有出現重複的,儲存這個數,繼續順利地進行比較,得出結果,二是出現了重複的,那就得廢掉這個數,重新產生一個,儲存新產生的不重複的數,然後繼續進行。值得一提的是這裡會有一個標杆(flag),來告訴你重複了怎麼辦,不重複怎麼辦,這個是很重要的。

                代碼如下:

                        

Dim a() As Long

Private Sub Form_Click()
    Dim k As Integer, m As Integer, n As Integer
    k = Val(InputBox("請輸入k"))       ’產生K個整數
    m = Val(InputBox("請輸入m"))         ‘整數的範圍,m為下界
    n = Val(InputBox("請輸入n"))        ’n為上界
  
    ReDim a(k - 1)
    temp = Int(m + (n - m + 1) * Rnd())         ‘隨機產生一個數,並賦給了數組的第一個數a(0)
    c= temp
    a(0) = c
    Print a(0)
   
    '處理第二個以後可能重複的數
    For i = 1 To k - 1
        c = Int(m + (n - m + 1) * Rnd())
        flag = 1    '假設不重複  這裡的flag就是重要的標杆!
        
        For t = 0 To i - 1          ’這裡之前得出的最大數和到現在為止產生的i個數比較
            If c = a(t) Then
                i = i - 1   '廢掉這個數,重新產生一個數
                flag = 0
                Exit For
            End If
        Next t
       
        If flag = 1 Then     '不重複的數,儲存到數組中
            a(i) = c
            Print c               ‘顯示在螢幕上
        End If
       
    Next i
End Sub

 

 

 

 

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.