16.【加試題】數組變量a記錄著一個長度為n(1≤n≤100)的序列a(1),a(2),…,a(n).現在寫一段代碼,以整數p(1≤p≤100)為參數,實現如下功能:將序列a的前p個數與后n-p個數對調,且不改變這p個數(或n-p個數)之間的相對位置.例如,長度為5的序列1,2,3,4,5,當p=2時重排的結果為:3,4,5,1,2.小張用VB實現上述功能,在文本框Text1中輸入p的值,單擊“重排”按鈕Command1,在標簽Text2中輸出結果,程序代碼如下,但數字處代碼有錯,請改正. Const n=100 Dim a(1To n) As Integer Private Sub Form_Load ( ) '本過程隨機產生n個數,并存儲在數組a中,代碼略 End Sub Private Sub Command1_Click ( ) Dim p As Integer,i As Integer,j As Integer p=Val(Text1.Text) For i=p+1To n t=a(i) For j=i To i-p Step-1'① a(j)=a(j-1) Next j a(j+1)=t '② Next i Text2.Text=““ For i=1To n Text2.Text=Text2.Text+““+Str(a(i)) Next i End Sub.
. (2)實現上述功能的VB程序如下,請在橫線處填入合適的代碼. Const n=10 Dim i As Integer,j As Integer,t As Integer Dim a(1To n) As Integer Private Sub Form_Load ( ) '本過程用于讀取n堆的數據并存儲在數據a中 '代碼略 End Sub 'sort(x)過程的功能是對a(x)、a(x+1)、…、a(n)中的數進行從小到大排序 Private Sub sort(x As Integer) For i=
To n-1 For j=n To i+1Step-1 If a(j)<a(j-1)Then t=a(j):a(j)=a(j-1):a(j-1)=t End If Next j Next i End Sub Private Sub Command1_Click ( ) Dim sum As Integer,k As Integer sum=0 sort (1) For k=1To n-1 a(k+1)=a(k)+a(k+1) sum=sum+