VB选择法排序,新手请教!

HL4567 2009-06-07 04:46:50
Private Sub Command1_Click()
Const N = 5
Dim a(1 To N) As Integer, i%, j%, k%, t%
Randomize
For i = 1 To N
a(i) = Int(Rnd * 90) + 10
Print a(i);
Next i
Print
Do While i <= N - 1
k = i
Do While j >= i + 1 And j <= N
If a(j) > a(k) Then k = j
Loop
t = a(i): a(i) = a(k): a(k) = t
Loop
Print
For i = 1 To N
Print a(i);
Next i
End Sub

这段代码运行后不能排序,改了几下也没成功.向各位请教(想用Do语句实现排序)
...全文
155 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
HL4567 2009-06-07
  • 打赏
  • 举报
回复
好的,多谢提醒!
贝隆 2009-06-07
  • 打赏
  • 举报
回复
其实这是数据结构的问题,我采用的是冒泡排序,建议你去看看。
HL4567 2009-06-07
  • 打赏
  • 举报
回复
谢谢二位,弄明白了.
贝隆 2009-06-07
  • 打赏
  • 举报
回复
Const N = 5
Dim a(1 To N) As Integer, i%, j%, k%, t%
Randomize
For i = 1 To N
a(i) = Int(Rnd * 90) + 10
Print a(i);
Next i
Print
i = 5
Do
j = 1
Do
If a(j) > a(j + 1) Then
k = a(j)
a(j) = a(j + 1)
a(j + 1) = k
End If
j = j + 1
Loop Until j > i - 1
i = i - 1
Loop Until i < 1
Print
For i = 1 To N
Print a(i);
Next i
yachong 2009-06-07
  • 打赏
  • 举报
回复
Private Sub Command1_Click()
Const N = 5
Dim a(1 To N) As Integer, i%, j%, k%, t%
Randomize
For i = 1 To N
a(i) = Int(Rnd * 90) + 10
Print a(i);
Next i
Print
i = 1
Do While i <= N - 1
k = i
j = i + 1
Do While j <= N
If a(j) > a(k) Then k = j
j = j + 1
Loop
t = a(i): a(i) = a(k): a(k) = t
i = i + 1
Loop
Print
For i = 1 To N
Print a(i);
Next i
End Sub

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧