| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 654 人关注过本帖
标题:双重循环问题!!
只看楼主 加入收藏
cqlan006
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2007-2-13
收藏
 问题点数:0 回复次数:4 
双重循环问题!!
Public Sub Sort(a() As Integer)
Dim start As Integer, finish As Integer
Dim i As Integer, j As Integer, t As Integer
start = LBound(a)
finish = UBound(a)
For i = finish To 2 Step -1
For j = 1 To i - start
If a(j) < a(j + 1) Then
t = a(j + 1)
a(j + 1) = a(j)
a(j) = t
End If
Next
Next
End Sub
目的是实现数组的降序排列,可为什么
For i = finish To 2 Step -1
For j = 1 To i - start
这样写,请告知!!!
搜索更多相关主题的帖子: start 
2007-03-25 15:33
cqlan006
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2007-2-13
收藏
得分:0 

知道的讲解下哈

2007-03-25 16:15
huangwy
Rank: 1
等 级:新手上路
威 望:2
帖 子:297
专家分:0
注 册:2007-3-23
收藏
得分:0 

首先,程序应该是这样才是正确的
Public Sub Sort(a() As Integer)
Dim start As Integer, finish As Integer
Dim i As Integer, j As Integer, t As Integer
start = LBound(a)
finish = UBound(a)
For i = finish To start + 1 Step -1
For j = start To i - 1

If a(j) < a(j + 1) Then
t = a(j + 1)
a(j + 1) = a(j)
a(j) = t
End If
Next
Next
End Sub

ubound(a)是取得数组a的上限,也就是数组下标的最大值
同理lbound(a)是下限
i的循环是用来算比较次数的,因为总共有finis次
j的循环是用来作比较的,每次从最末一个元素逐个比较,
比过的元素,在下一次就不再比较
用i-1指定最末的元素

另外,如果没有特别声明,数组是从0开始的,也就是说
a(10)的数组,包括11个元素

希望我说的你能明白

2007-03-27 14:16
风月_无边
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:60
帖 子:2960
专家分:652
注 册:2007-1-19
收藏
得分:0 
说的不错,我也学习下

我的网站 http://www.
2007-03-27 18:42
星梦缘
Rank: 1
来 自:江西
等 级:新手上路
帖 子:413
专家分:0
注 册:2007-1-16
收藏
得分:0 
谢谢拉 ..这个问题我也不知道
现在懂拉

show出自己 活力四射!
2007-03-29 11:45
快速回复:双重循环问题!!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017651 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved