16.插入排序。小明用VB設計程序,主要功能如下:隨機產生10個介于1到100之間的正整數數列,按升序排序后顯示在List1列表框中,在文本框Text1中輸入1個100以內的正整數,單擊“插入”按鈕Command1后將其插入到數列中,并保持數列仍然有序,顯示在列表List2中,同時在標簽Label4中顯示插入的位置,程序界面如下圖所示。 實現上述功能的VB程序代碼如下,但是有兩個地方有誤,請改正。 Dim a(1To 15)As Integer Dim i,j As Integer Const n=10 Private Sub Form_Load( ) Randomize'隨機生成n個1到100之間的正整數 For i=1To n a(i)=Int(Rnd*100)+1 Next i '將10個數從小到大排序 For i=1To n-1 k=i For j=i+1To n Next j If i<>k Then t=a(i):a(i)=a(k):a(k)=t End If Next i '將排好序的數輸出在列表框Listl中 List1.Clear For i=1To n List1.AddItem Str(a(i)) Next i End Sub Private Sub Command1_Click ( ) Dim key As Integer key=Val(Text1.Text) i=1 Do While key>a(i) And (i<=n) i=i+1 Loop Label4.Caption=“該數插入的位置是:“+Str(i) If i=11Then a(i)=key Else For j=n+1To i+1Step-1 Next j a(i)=key End If List2.Clear For i=1To 11 List2.AddItem a(i) Next i End Sub
。 (2)請在橫線處填入合適的代碼。 Dim n As Integer Dim a(0To 100)As String Private Sub Command1_Click( ) Dim s As String Dim left As Integer,right As Integer,i As Integer Dim max As Integer,m As Integer,b1As Integer '變量 b1 用于記錄回文子串的左端起點 Text2.Text=““ s=Text1.Text n=Len(s) For i=1To n a(i)=Mid(s,i,1) Next i max=0:left=0:right=0 For i=1To n left=i right=i m=longest(left,right) If m>max Then
max=m End If left=i right=i+1 If a(left)=a(right) Then m=longest(left,right)+1 If m>max Then b1=i-m\2+1 max=m End If End If Next i For i=b1To
Text2.Text=Text2.Text+a(i) Next i End Sub Function longest(left As Integer,right As Integer) As Integer Dim p As Integer p=1 Do While left>1 And right<n And
left=left-1 right=right+1 p=p+2 Loop longest=p End Function