题目

小明在玩一个数字游戏,给定一个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)
信息技术 试题推荐
最近更新