小明在玩一个数字游戏,给定一个n位正整数(n<=20),根据设定的保留位数,删除k个数字,剩下的数字按原次序组成一个最大的新数。例如原数36351328,删除5个数,最大数为658。算法如下:先确定最高位的数字,在第1位至最后2位数字前的363513中找到最大的数6,从而确定最高位是6,再确定次高位的数字,从6后面的数开始到最后1位数字前的35132中找到最大数5,确定次高位是5,依次找下去得到最大新数。他设计了一个VB程序来进行验证,在文本框Text1中输入一个n位正整数,在文本框Text2中输入删除位数k,点击“确定”按钮,在文本框Text3中输出保留的最大新数。程序运行界面如图所示。
(1)
如果输入的原数是3638132,删除3位数字,则输出的新数是。
(2)
实现上述功能的VB代码如下,请在划线处填入合适代码。
Private Sub Command1_Click()
Dim a(1 To 20) As String
Dim ys As String, xs As
String ‘s记录最大的新数
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 > 20 Or
k = 0 Or k > n Then
Label4.Caption = “输入的原数或保留位数不符,请重输!”
F = False
End If
For i = 1 To 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 = 1 To n-k
For j = h To
If a(j)
> a(h) Then h = j
Next j
h = h + 1
Next i
Text3.Text = xs
End If
End Sub
答案: 【1】8132
【1】a(i)=Mid(ys,i,1)【2】k+i【3】xs=xs+a(h)