注册 登录
编程论坛 VB6论坛

请问老师VB中怎么自动找到1-100中缺少的数字?

pxinfo 发布于 2019-08-30 23:19, 2879 次点击
请问老师VB中怎么自动找到1-100中缺少的数字?
access中的一个列,1-100的数字组成,怎么自动生成缺失的数字呢?比如没有33,那自动生成33这个数字
4 回复
#2
okshunliang2019-09-08 20:51
读取一列保存为数组。for一个1-100的循环,每次循环都在数组里遍历一遍,就能找到数组中缺失的数字
#3
沉默的痞子2019-09-16 17:04
先生成一个1-100的数组,然后for access 哪个有就把数组里的值变成0,剩下的就是没有的,这样数据快
dim sz(1 to 100) as long
for i=1 to 100
    sz(i)=1
next
for access循环
    sz(access值)=0
next
for i=1 to 100
    if sz(i)=1 then
    '打印缺少的码
    print i
next
#4
ZHRXJR2019-09-18 19:25
由于与数据库记录比较,不是仅仅数组能够解决的,必须需要数据库,将数据库记录读取到数组才能检测到是哪个数字缺少了。
只有本站会员才能查看附件,请 登录

程序代码:

Private Sub Form_Load()
Call BBB(cnn)
For I = 1 To 50
RS.Open "Select * From 数字表 Where 数字=" & I & " Order BY ID", cnn, 3, 2
    If Not RS.EOF Then
        AA(I) = RS!数字
    Else
        AA(I) = 0
        SST = I
    End If
If Not RS.EOF Then RS.MoveNext
RS.Close
Next I
Dim STT As Integer
RS.Open "Select * From 数字表", cnn, 3, 2
STT = RS.RecordCount
    For I = 1 To STT
    BB(I) = RS!数字
     If Not RS.EOF Then RS.MoveNext
    Next I
    RS.Close
cnn.Close
Text1.Text = ""
Text2.Text = ""
Label1.Visible = False
For I = 1 To 50
    If I < 10 And BB(I) > 0 Then
        Text1.Text = Text1.Text & "0" & BB(I) & Space(5)
    ElseIf I >= 10 And BB(I) > 0 Then
        Text1.Text = Text1.Text & BB(I) & Space(5)
    End If
Next I
Text2.Text = "缺少的数字是:" & SST
If SST < 1 Then
Command1.Enabled = False
Label1.Visible = True
End If
End Sub

仅仅做了“找到1-50中缺少的数字”,没有50以上的,不过应该差不多。

[此贴子已经被作者于2019-9-18 19:29编辑过]

#5
nvdkzyp2021-01-14 08:59
我觉得如果数字是顺序排列,那直接取中间位(比如第50个),看值是否等于应有的中间为(比如50)。如果等于,则往后找,如果不等于,则在前段找。

数字不是顺序排列就给他排个序


或者确定范围、确定增长步长的直接循环对比

for  循环=开头to结尾
    if 数X <> 循环 then msgbox " 数X异常 " : exit for
next  循环

菜鸟发言,望大神指正

[此贴子已经被作者于2021-1-14 09:03编辑过]

1