16.【加試題】有一個報數(shù)游戲,n個人排成一圈,游戲開始時規(guī)定一個報數(shù)號m,然后從其中一個人開始按順時針報數(shù)1,2,3…n,當(dāng)某人報到的數(shù)為m的倍數(shù)時,即被淘汰,其他人繼續(xù)游戲,直到最后.現(xiàn)用VB設(shè)計了一個程序,程序界面如下圖所示.在文本框Text1中輸入?yún)⒓佑螒虻娜藬?shù)n,在文本框Text2中輸入報數(shù)號m,單擊“報數(shù)”按鈕,即在列表框List1中顯示每次被淘汰的人的順序號. 實現(xiàn)上述功能的VB代碼如下,但加框處有錯,請改正. Private Sub Command1_Click( ?。?br />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)實現(xiàn)上述功能的VB代碼如下,請在橫線處填入合適代碼. Private Sub Command1_Click ( ?。?br />Dim a(1To 20)As String Dim ys As String,xs As String'xs記錄最大的新數(shù) 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=“輸入的原數(shù)或保留位數(shù)不符,請重輸!“ F=False End If For i=1To n ① If a(i)<“0“Or a(i)>“9“Then Label4.Caption=“輸入的原數(shù)不是數(shù)字,請重輸!“ 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.