这道题怎么写
vb吧
全部回复
仅看楼主
level 5
是吖▫ 楼主
这道题怎么写
2020年05月17日 12点05分 1
level 5
是吖▫ 楼主
2020年05月17日 13点05分 2
level 5
是吖▫ 楼主
看不懂
2020年05月17日 13点05分 3
level 5
是吖▫ 楼主
我的哪里有问题吗
2020年05月17日 13点05分 4
level 15
你这是完全不会排序啊,先学习一下排序算法应该怎么写吧
2020年05月17日 13点05分 5
level 5
是吖▫ 楼主
这样对了吗
2020年05月17日 13点05分 6
从结果来看是没错了,不过你的Command2没有调用过程dy来显示数字
2020年05月17日 13点05分
@初音✨七奈 不会用
2020年05月17日 13点05分
@是吖▫ 应该说你没有写好dy这个过程,如果写好了,不管数组下标从几开始,都能一样应付;另外,你没必要用两个数组的
2020年05月17日 13点05分
@初音✨七奈 我咋没怎么看懂
2020年05月17日 13点05分
level 5
是吖▫ 楼主
插入数据那个怎么弄啊
2020年05月17日 13点05分 7
插入也是排序,就叫“插入排序”
2020年05月17日 13点05分
level 5
是吖▫ 楼主
一个数组的排序
2020年05月17日 13点05分 8
我感觉我好像懂一点了
2020年05月17日 13点05分
是这样吗
2020年05月17日 13点05分
level 15
给你写一段完整的代码供参考吧:
Dim a() As Integer '由于需要插入数字,因此数组大小会发生变化,应该用动态数组
Private Sub dy(a() As Integer)
Dim i As Integer, k As Integer
'多定义一个变量,专门用来计数,就可以应付不同的数组下界了
For i = LBound(a) To UBound(a)
Print a(i);
k = k + 1
If k Mod 10 = 0 Then Print
Next i
End Sub
'Command1的代码略,你已经写得很好了;不过由于改用了动态数组,需要加一句:
ReDim a(29) '加在For语句之前即可
Private Sub Command2_Click()
Dim i As Integer, j As Integer, t As Integer
Print "排序后:"
For i = 0 To 28
For j = i + 1 To 29
If a(i) > a(j) Then
t = a(i)
a(i) = a(j)
a(j) = t
End If
Next j
Next i
dy a '前面先排序,不用输出,排序完之后再调用dy进行输出
End Sub
Private Sub Command3_Click()
Dim i As Integer, x As Integer
x = Val(InputBox("请输入要插入的数"))
Print "插入" & x & "后:"
ReDim Preserve a(30)
For i = 30 To 1 Step -1 '从后往前依次查找
If x >= a(i - 1) Then Exit For
'如果输入的数比第i个数之前的数大(或相等),则插入到这个位置
a(i) = a(i - 1) '如果还没有找到插入的位置,则需要将数字向后移动
Next i
a(i) = x '插入到第i个数的位置
dy a '再调用dy输出结果
End Sub
2020年05月17日 14点05分 9
大佬太热心了,vb6吧属你答题解惑最多,给个赞👍
2020年05月17日 14点05分
我去瞅瞅
2020年05月17日 14点05分
我看懂了,谢谢你啦
2020年05月17日 14点05分
1