vb升序排序代码!

把两个按升序排列的数列a(1),a(2)……和b(1),b(2)……合并后生成一个仍为升序排列的新数列
我才开始学习vb,很多都不懂.所以我把代码放在Private Sub Command2_Click()之下(代码放在合并按钮中),可是说我类型不匹配,怎么回事?

第1个回答  2007-11-21
c = Split(Join(a) & " " & Join(b), " ")
For i = 0 To UBound(c)
For j = i + 1 To UBound(c)
If Val(c(j)) < Val(c(i)) Then d = c(i): c(i) = c(j): c(j) = d
Next
Next

晕,你自己说的,你已经有a,b这2个数组了呀.所有例子中就没有提这2个数组的事件了..要是你没有,当然代码就会提示错误的,算了,补充一下完整的吧:
=====================================
Private Sub Command2_Click()
Dim a(4), b(4), c, i%, j%
For i = 0 To 4
a(i) = i
b(i) = i * 2
Next
Print "a数组为:"; Join(a)
Print "b数组为:"; Join(b)
'前面是先生成数组a和数组b

'下面就是我贴的,合并数组,仍为升序的方法呀,你的错误
'就是你没有a,b这2个数组,当然提示错误了.
c = Split(Join(a) & " " & Join(b), " ")
For i = 0 To UBound(c)
For j = i + 1 To UBound(c)
If Val(c(j)) < Val(c(i)) Then d = c(i): c(i) = c(j): c(j) = d
Next
Next
Print "合并后的c数组为:"; Join(c)
End Sub本回答被提问者采纳
第2个回答  2007-11-20
利用插入排序逐个比较,不必用指针太麻烦

dim i%,j%,c%()
i=1:j=1 ;
redim c(1 to ubound(a) + ubound(b)) ;//声明C数组的大小
do
if a(i)<=b(j) then {
c(i+j-1)=a(i) ;
i=i+1} //指向下一个元素
else {
c(i+j-1)=b(j) ;
j=j+1 }//指向下一个元素

end if
loop until i>ubound(a) or j>ubound(b);
第3个回答  2007-11-20
dim i%,j%,c%()
i=1:j=1
redim c(1 to ubound(a) + ubound(b))
do
if a(i)<=b(j) then
c(i+j-1)=a(i)
i=i+1
else
c(i+j-1)=b(j)
j=j+1
end if
loop until i>ubound(a) or j>ubound(b)

vb中100个数升序排列怎么写
next j next i 这是数组按升序排序的标准代码。

vb升序排序代码!
For i = 0 To UBound(c)For j = i + 1 To UBound(c)If Val(c(j)) < Val(c(i)) Then d = c(i): c(i) = c(j): c(j) = d Next Next 晕,你自己说的,你已经有a,b这2个数组了呀.所有例子中就没有提这2个数组的事件了..要是你没有,当然代码就会提示错误的,算了,补...

VB的升序和降序怎么做啊?
Option Base 1 Dim b%(10)'升序排列 Private Sub Command1_Click()Dim a a = b For i = 1 To 10 For j = 1 To 10 - i 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 For i = 1 To 10 Text1 = Text1...

VB使用升序选择排解释
第二次排序,2再与 它前面的3 4比较,首先与3比较,2 比较小,排序是2 4 3 1 再次3又与4比较,3 比较小,排序2 3 4 1 第三次排序,1与它之前的2 3 4比较,首先1比2小,排序后是1 3 4 2 再次2比3小,排序后是1 2 4 3 再次3比4小,排序后是1 2 3 4 就可以了。如果能看...

A列如果有一组数字应如何用EXCEL VB代码排列(升序、降序)
请参考如下代码: Range("A1:A10").Select '选中需要排序的数据区域 '按A列升序排,有标题行 Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _ :=xlPinYin, DataOption1:=xlSortTextAsNumbers '...

VB产生10个随机 升序三位数 (个位数大于十位大于百位)求代码
Private Sub Command1_Click()Randomize For i = 1 To 10 a = Int(Rnd * 7) + 1 b = Int(Rnd * (7 - a)) + 1 + a c = Int(Rnd * (8 - b)) + 1 + b d = 100 * a + 10 * b + c Print d Next i End Sub ...

VB编程 三个任意填的数字,按照升序或者降序排序,点击“排序”按钮后,就...
Dim n(NUM) As Double Private Sub Command1_Click()'按钮1,升序 For i = 0 To NUM - 1 For j = i + 1 To NUM If n(i) > n(j) Then tmp = n(i)n(i) = n(j)n(j) = tmp End If Next Next For i = 0 To NUM Print n(i) & " ";Next Print End Sub Private ...

求VB程序代码,要求如下。
在窗口里面添加如下代码...Option Explicit Private A(1 To 10) As Long Private Sub Command1_Click()Dim i As Long Dim s As String Call Do_升序 For i = 1 To 10 s = s & A(i) & " , "Next s = Left(s, Len(s) - 2)Text1.Text = s End Sub Private Sub ...

VB编码:判断升序数
For i = 1 To Len(S) - 1 If Mid(S, i, 1) >= Mid(S, i + 1, 1) Then Exit For Next 此段人代码的意思就是判断相邻两位数的大小关系。如果i位数比i+1小,则if语句不执行,for 循环执行next语句i加1。即这两位数符合升序数规则。如果输入的数为升序数,则for语句执行到最后一次...

vb编程题 升降序问题 急
是VB6.0的还是VB.net的?我这里写了一个VB6.0的,VB.net的其实也差不多,就是改改控件名称,个别语法有点不同而已...form1的代码如下:'==='用于储存10个随机数的数组 Dim a(10) As Integer 'class1的引用,class1主要提供排序和生成随即数的功能 Dim c As Class1 Private Sub Command1_Click...

相似回答