问答1 问答5 问答50 问答500 问答1000
网友互助专业问答平台

...怎么样让它在一组数据中找到一个最接近大于它的数和一个最接近小于...

提问网友 发布时间:2024-04-26 04:03
声明:本网页内容为用户发布,旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:1656858193@qq.com
3个回答
热心网友 回答时间:2024-04-28 03:39
'在窗体上画一个名称为Command1的按钮就可以运行了
    
 Private Sub Command1_Click()
    Dim i As Integer, myNumber As Integer, myResult As Long
    Dim intMyArray(0 To 4) As Integer
   
    '-----------------------------
    '这部分是测试数据,根据需要自己设置
    intMyArray(0) = 20
    intMyArray(1) = 25
    intMyArray(2) = 10
    intMyArray(3) = 15
    intMyArray(4) = 5
    myNumber = 5
    '-----------------------------
    '首先对数组数据进行排序,防止用来判断的数组不标准产生误差
    If MySort(intMyArray()) Then
         
        '对要进行处理的数值进行校验,排除非法数据
        If myNumber > intMyArray(UBound(intMyArray)) Or myNumber < intMyArray(0) Then
            MsgBox "输入值超出可处理范围,请检查", vbExclamation, "提示"
            Exit Sub
        End If
    
        If JudgeNumber(intMyArray, myNumber, myResult) Then
            Print myNumber & "的处理结果为:" & myResult
        Else
            MsgBox "处理失败失败", vbExclamation, "提示"
        End If
    Else
        MsgBox "排序失败", vbExclamation, "提示"
    End If
End Sub
 
Private Function MySort(intArray() As Integer) As Boolean
    Dim i      As Integer, j As Integer
    Dim intTmp As Integer
    On Error GoTo ErrLab
    For i = 0 To UBound(intArray) - 1
        For j = 0 To UBound(intArray) - i - 1
            If intArray(j) > intArray(j + 1) Then
                intTmp = intArray(j)
                intArray(j) = intArray(j + 1)
                intArray(j + 1) = intTmp
            End If
        Next
    Next
    MySort = True
ErrLab:
    If Err.Number <> 0 Then
        MySort = False
    End If
End Function
 
'lngResult为计算结果
Private Function JudgeNumber(intArray() As Integer, ByVal intInput As Integer, ByRef lngResult As Long) As Boolean
    Dim i As Integer
    
    
    On Error GoTo ErrLab
    
    For i = 0 To UBound(intArray)
        If intInput <= intArray(i) Then
            If intInput = intArray(i) Then
                lngResult = intInput
            Else
                lngResult = intArray(i - 1) * intArray(i)
            End If
            Exit For
        End If
    Next
    
    JudgeNumber = True
    Exit Function
ErrLab:
    JudgeNumber = False
End Function
热心网友 回答时间:2024-04-28 03:31
Option Base 1
Private Sub Command1_Click()
Dim x(), i%, a%, b%
x = Array(5, 10, 15, 20, 25)
a = InputBox("input a number:")
For i = 1 To UBound(x)
If a < x(i) Then
b = a * x(i)
ElseIf a = x(i) Then
b = a
End If
Next i
MsgBox b

End Sub
热心网友 回答时间:2024-04-28 03:36
这要分两个步骤来处理,第一步是找数组中有没有相同的数,找到了就确认并退出,没找到进入下一步,把这个数加入数组中,并进行数组排序,排序结束后取得上下两个相邻的数进行相乘,整个过程就这样.

本文如未解决您的问题请添加抖音号:51dongshi(抖音搜索懂视),直接咨询即可。

如何强制二次修改 关于微信绑定上限的问题:你的手机号在最近24小时内已绑定过3个... 与未来有关的文艺句子 微信手机号在24小时内,已绑定两个,已达到限制,不能在绑定其他微信... 您的手机号在最近24小时内绑定过三个,已达到限制,...24小时后... 微信手机号在24小时内,已绑定两个,已达到限制,不能在绑定其他微信... 一年内第二次强制修改 一年内怎么改第二次 微信手机号在24小时内,已绑定两个,已达到限制,不能在绑定其他微信... 如何一年内强制二次修改? 您的手机号在最近24小时内绑定过三个,已达到限制,...24小时后... 您的手机号在最近24小时内绑定过三个,已达到限制,...24小时后... 一年内强制改二次方法 未满一年怎么改第二次 删掉了微信好友,但是又不知道和手机号,怎么加回? 怎么在一年内修改两次 我和女友两地分居,最近打电话她总说没什么话说,她说上班很累,总是嫌... 我和女友两地分居,最近打电话她总说没什么话说,她说上班很累,总是嫌... ...现在越来越瘦天天心累不知道为什么 我还要继续吗不舍得怎么办?_百 ... 一年内第二次强制修改 微信手机号在24小时内,已绑定两个,已达到限制,不能在绑定其他微信... 删掉的好友不记得想加回来 手机号1 24 手机号24小时内绑定了两个被限制 请问什么时候才能重 ... 我长痘痘将近七年之久了 现在19 女 高三了 压力太大 就疯长痘痘 在饮食... 中国银行有什么作用 人民的名义祁同伟省公安厅长是什么级别?结局怎么样 微信手机号在24小时内,已绑定两个,已达到限制,不能在绑定其他微信... 可以改成什么有意义的名字? 如何一年内强制二次修改? 微信手机号在24小时内,已绑定两个,已达到限制,不能在绑定其他微信... 手机号1 24 手机号24小时内绑定了两个被限制 请问什么时候才能重 ... 您的手机号在最近24小时内绑定过三个,已达到限制,...24小时后... 改错了未满一年怎么改回来 我是高三的学生。最近心情很烦躁。而且脸上还长痘痘了。不知道是上火... 修改一年内如何二次修改吗苹果 一年之内只能修改两次吗? 一年内怎么改第二次 微信手机号在24小时内,已绑定两个,已达到限制,不能在绑定其他微信... 一年内怎么改第二次? 一年内第二次强制修改
Top