Разбить массив int на два четных и нечетных массива VBscript. Ошибка - PullRequest
0 голосов
/ 27 апреля 2020

Я написал код для массива чисел, который выводится на печать. Я сейчас пишу код для разделения массива на четные и нечетные числа. Я начал с оператора if, чтобы отделить числа, но я изо всех сил пытаюсь найти решение, как это сделать. Мой код ниже не работает, так как он не может разбить числа.

Sub main()
    a=Array(5,10,15,20)
for each x in a
    Msgbox(x)

    If MyArray(I) / 2 = MyArray(I) 
        List1.AddItem MyArray(I) ' Even Integers
    Else
        List2.AddItem MyArray(I) ' Odd Integers
    End if
next


End Sub 

1 Ответ

1 голос
/ 28 апреля 2020

Как предполагает Lankymart, самый простой подход - это использовать Mod() и проверить, равен ли остаток 1 или 0, но вы также можете сделать это с подходом, к которому вы, похоже, работали:

If MyArray(index)/2 = Int(MyArray(index)/2) Then
    ' Even number
Else
    ' Odd number
End If

Mod() подход:

If MyArray(index) Mod 2 = 0 Then
    ' Even number
Else
    ' Odd number
End If

Вот полная подпрограмма, которая демонстрирует, что вы пытаетесь сделать:

Dim arr(4) As Integer
Dim arrEven() As Integer
Dim iEvenValues As Integer
Dim arrOdd() As Integer
Dim iOddValues As Integer
Dim iCounter As Integer

' Initialize array
arr(0) = 5
arr(1) = 10
arr(2) = 15
arr(3) = 20

For iCounter = 1 To UBound(arr)

    If arr(iCounter - 1) Mod 2 = 0 Then
        iEvenValues = iEvenValues + 1
        ReDim Preserve arrEven(iEvenValues)
        arrEven(iEvenValues - 1) = arr(iCounter - 1)
    Else
        iOddValues = iOddValues + 1
        ReDim Preserve arrOdd(iOddValues)
        arrOdd(iOddValues - 1) = arr(iCounter - 1)
    End If
Next

Dim sValues As String
sValues = "Even values (" & iEvenValues & "):"
For iCounter = 1 To UBound(arrEven)
    sValues = sValues & " " & arrEven(iCounter - 1)
Next

MsgBox sValues

sValues = "Odd values (" & iOddValues & "):"
For iCounter = 1 To UBound(arrOdd)
    sValues = sValues & " " & arrOdd(iCounter - 1)
Next

MsgBox sValues
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...