早教吧 育儿知识 作业答案 考试题库 百科 知识分享

VB中有个错误,下标越界,下列程序是求任意排列数的逆序数.所谓逆序数就是排列数中每一位元素比左边所有元素小的个数.例如:26154,2排在首位,左边没有元素,它的逆序数为0;6左边没有比它

题目详情
VB中有个错误,下标越界,
下列程序是求任意排列数的逆序数.所谓逆序数就是排列数中每一位元素比左边所有元素小的个数.例如:26154,2排在首位,左边没有元素,它的逆序数为0;6左边没有比它大的元素,逆序数为0;1左边的2和6元素比它大,它的逆序数为2;5左边只有6元素比它大,它的逆序数为1;4左边的5和6元素比它大,它的逆序数为2,统计得排列数26154的逆序数为0+0+2+1+2=5.
Option Base 1
Private Sub Command1_Click()
Dim b()
s = Text1.Text
x = Val(s)
n = Len(s)
Call funl(b,x,n)
For i = 2 To n
For j = i - 1 To 1 Step -1
If b(i) < b(j) Then
t = t + 1
End If
Next j
Next i
Text2.Text = t
End Sub
Public Sub funl(b,byValx,n)
ReDim b(m) 此处下标越界9,
k = m
Do
b(k) = x Mod 10
x = x \ 10
k = k - 1
Loop While x > 0
End Sub
▼优质解答
答案和解析
Public Sub funl(b,byValx,n)
ReDim b(m) '这里的m没有值
k = m
Do
b(k) = x Mod 10
x = x \ 10
k = k - 1
Loop While x > 0
End Sub