vb升序排序代码!

把两个按升序排列的数列a(1),a(2)……和b(1),b(2)……合并后生成一个仍为升序排列的新数列我才开始学习vb,很多都不懂.所以我把代码放在PrivateSubC... 把两个按升序排列的数列a(1),a(2)……和b(1),b(2)……合并后生成一个仍为升序排列的新数列
我才开始学习vb,很多都不懂.所以我把代码放在Private Sub Command2_Click()之下(代码放在合并按钮中),可是说我类型不匹配,怎么回事?
展开
 我来答
VB妮可
2007-11-21 · TA获得超过3333个赞
知道大有可为答主
回答量:2574
采纳率:0%
帮助的人:0
展开全部
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
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tangwenge
2007-11-20
知道答主
回答量:20
采纳率:0%
帮助的人:0
展开全部
利用插入排序逐个比较,不必用指针太麻烦

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);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
j_s_s911
2007-11-20 · TA获得超过563个赞
知道小有建树答主
回答量:292
采纳率:0%
帮助的人:219万
展开全部
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)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式