标题:为什么会导致VB6.0死掉
只看楼主
海蓝啸
Rank: 5Rank: 5
来 自:安徽
等 级:贵宾
威 望:17
帖 子:1611
专家分:0
注 册:2006-4-3
结帖率:100%
 问题点数:0 回复次数:5 
为什么会导致VB6.0死掉

下面这个程序是我写的二分法查找程序。。。。设了一个数组共三一个数。。。用循环赋值○到30
上面那个是二分查找函数。。。我不知道我写的对不对。。。。但是好像查找的数在数组中的时候就很正常。。。要是
没有。。。。VB6.0就会死掉。。。必需强行关闭才能关掉。。。。不知道 为什么。。。请各位指教

Private Function search$(a() As Integer, key%)
Dim up%, down%, mid%
up = UBound(a)
down = LBound(a)
Do Until down > up
mid = (up + down) \ 2
If a(mid) = key Then
search = Str(mid)
Exit Function
ElseIf a(mid) > key Then
up = mid
Else: down = mid
End If
Loop
search = "没找到哦"


End Function
Private Sub Form_click()
Dim i%, a(30) As Integer, k%
For i = 0 To 30
a(i) = i
Next i
k = Val(InputBox("请输入要查找的数"))
Print search(a, k)

End Sub

搜索更多相关主题的帖子: down mid key 二分法 Integer 
2006-11-25 21:01
cphong
Rank: 2
等 级:论坛游民
帖 子:7
专家分:10
注 册:2006-6-5
得分:0 
你可以按下 Ctrl + Pause 键中断执行
2006-11-25 22:10
yeshirow
Rank: 4
等 级:贵宾
威 望:10
帖 子:854
专家分:0
注 册:2006-6-8
得分:0 

else: down=mid+1


原來朋友仔感情再天真, 亦是我永遠也會愛惜的人, 明日愛他人, 也記住學會不要緊; 原來朋友比戀人更高分, 亦讓我開始懂得不記恨, 若大家都敏感, 我更要永遠記得拒絕再因小事怪人, 爲何沒有這條校訓...Twins-朋友仔 MCSD Training
2006-11-26 00:50
海蓝啸
Rank: 5Rank: 5
来 自:安徽
等 级:贵宾
威 望:17
帖 子:1611
专家分:0
注 册:2006-4-3
得分:0 

我按楼上的改过了。。把up=mid 改成up = mid - 1 把down = mid 改成down = mid + 1
确实可以。。。但我在想。。我要是不改的话,只是每次多加了一个比较的数而已,为什么会导致VB6.0 死掉呢。。。想不通。。。


这个社会太复杂。。。
2006-11-26 14:05
yeshirow
Rank: 4
等 级:贵宾
威 望:10
帖 子:854
专家分:0
注 册:2006-6-8
得分:0 

vb 沒有死掉, 你卻陷入了循環的無限中...
while until ??
---------
而且不是你所說的未賦初值的問題, 只要數組中沒有要找的數, 都會陷入其中
----------
二分查找法, 不妨考慮 3 個元素的情況對比一下


原來朋友仔感情再天真, 亦是我永遠也會愛惜的人, 明日愛他人, 也記住學會不要緊; 原來朋友比戀人更高分, 亦讓我開始懂得不記恨, 若大家都敏感, 我更要永遠記得拒絕再因小事怪人, 爲何沒有這條校訓...Twins-朋友仔 MCSD Training
2006-11-26 14:56
海蓝啸
Rank: 5Rank: 5
来 自:安徽
等 级:贵宾
威 望:17
帖 子:1611
专家分:0
注 册:2006-4-3
得分:0 
了解了。。。。谢谢楼上的。。。呵呵

这个社会太复杂。。。
2006-11-26 15:30



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-105350-1-1.html




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

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