16.【加試題】有一個報數游戲,n個人排成一圈,游戲開始時規定一個報數號m,然后從其中一個人開始按順時針報數1,2,3…n,當某人報到的數為m的倍數時,即被淘汰,其他人繼續游戲,直到最后.現用VB設計了一個程序,程序界面如下圖所示.在文本框Text1中輸入參加游戲的人數n,在文本框Text2中輸入報數號m,單擊“報數”按鈕,即在列表框List1中顯示每次被淘汰的人的順序號. 實現上述功能的VB代碼如下,但加框處有錯,請改正. Private Sub Command1_Click( ) Dim n As Integer,m As Integer Dim a(1To 50)As Integer n=Val(Text1.Text) m=Val(Text2.Text) For i=1To n '(1) Next i s=0:j=0 Do While s<n t=0 Do While t<m '(2) t=t+a(j) Loop a(j)=0 s=s+1 List1.AddItem“第“+Str(s)+“次:“+Str(j) Loop End Sub.
. (2)實現上述功能的VB代碼如下,請在橫線處填入合適代碼. Private Sub Command1_Click ( ) Dim a(1To 20)As String Dim ys As String,xs As String'xs記錄最大的新數 Dim k As Integer,h As Integer,n As Integer Dim i As Integer,j As Integer Dim F As Boolean xs=““ ys=Text1.Text n=Len(ys) k=Val(Text2.Text) F=True If ys=““Or n>20Or k=0Or k>n Then Label4.Caption=“輸入的原數或保留位數不符,請重輸!“ F=False End If For i=1To n ① If a(i)<“0“Or a(i)>“9“Then Label4.Caption=“輸入的原數不是數字,請重輸!“ Text1.Text=““ F=False End If Next i If F=True Then h=1 For i=1To k For j=h To ② If a(j)>a(h) Then h=j Next j xs=xs+a(h) h=h+1 Next i Text3.Text=xs End If End Sub.