Четные, нечетные значения одномерного массива - VB
Формулировка задачи:
И снова здравствуйте!)
Задачка простенькая, но у меня почему-то не считает. не могу понять, где ошибка.
Помогите, пожалуйста.
Условие:
Мой код:
Дан массив целых чисел А. Четные значения элементов массива записать в массив В, нечетные — в массив С. Подсчитать количество тех и других.
Листинг программы
- Private Sub Command1_Click()
- Dim a(), b(), c() As Double
- n = Text1.Text
- ReDim a(1 To n)
- ReDim b(1 To n)
- ReDim c(1 To n)
- Picture1.Cls
- Picture2.Cls
- Picture3.Cls
- Picture4.Cls
- Picture5.Cls
- Randomize
- For i = 1 To n
- a(i) = Int(21 * Rnd - 10)
- Picture5.Print a(i);
- If (a(i) Mod 2 = 0) Then a(i) = b(i)
- If (a(i) Mod 1 = 0) Then a(i) = c(i)
- Picture1.Print b(i);
- Picture2.Print c(i);
- Next
- End Sub
Переписал код немного в другом виде, все считает, но сам код кривой( Хотелось бы увидеть правильное решение
Решение задачи: «Четные, нечетные значения одномерного массива»
textual
Листинг программы
- Dim pb As Integer
- Dim pc As Integer
- Sub sortEvOd(A() As Integer, i As Integer, B() As Integer, C() As Integer)
- If (i > UBound(A, 1)) Then
- Exit Sub
- Else
- If (A(i) Mod 2) = 0 Then
- pb = pb + 1
- B(pb) = A(i)
- sortEvOd A(), i + 1, B(), C()
- Else
- pc = pc + 1
- C(pc) = A(i)
- sortEvOd A(), i + 1, B(), C()
- End If
- End If
- End Sub
- Sub Test()
- Dim AA(1 To 30) As Integer
- Dim BB(1 To 30) As Integer
- Dim CC(1 To 30) As Integer
- Randomize
- For i% = 1 To 30
- AA(i%) = Rnd * 10
- Next i%
- sortEvOd AA(), 1, BB(), CC()
- For i% = 1 To pb
- Debug.Print "B("; i%; ")="; BB(i%)
- Next i%
- For i% = 1 To pc
- Debug.Print "C("; i%; ")="; CC(i%)
- Next i%
- End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д