Четные, нечетные значения одномерного массива - VB

Узнай цену своей работы

Формулировка задачи:

И снова здравствуйте!) Задачка простенькая, но у меня почему-то не считает. не могу понять, где ошибка. Помогите, пожалуйста. Условие:
Дан массив целых чисел А. Четные значения элементов массива записать в массив В, нечетные — в массив С. Подсчитать количество тех и других.
Мой код:
Листинг программы
  1. Private Sub Command1_Click()
  2. Dim a(), b(), c() As Double
  3. n = Text1.Text
  4. ReDim a(1 To n)
  5. ReDim b(1 To n)
  6. ReDim c(1 To n)
  7. Picture1.Cls
  8. Picture2.Cls
  9. Picture3.Cls
  10. Picture4.Cls
  11. Picture5.Cls
  12. Randomize
  13. For i = 1 To n
  14. a(i) = Int(21 * Rnd - 10)
  15. Picture5.Print a(i);
  16. If (a(i) Mod 2 = 0) Then a(i) = b(i)
  17. If (a(i) Mod 1 = 0) Then a(i) = c(i)
  18. Picture1.Print b(i);
  19. Picture2.Print c(i);
  20. Next
  21. End Sub
Переписал код немного в другом виде, все считает, но сам код кривой( Хотелось бы увидеть правильное решение

Решение задачи: «Четные, нечетные значения одномерного массива»

textual
Листинг программы
  1. Dim pb As Integer
  2. Dim pc As Integer
  3.  
  4. Sub sortEvOd(A() As Integer, i As Integer, B() As Integer, C() As Integer)
  5.  
  6.     If (i > UBound(A, 1)) Then
  7.        Exit Sub
  8.     Else
  9.        If (A(i) Mod 2) = 0 Then
  10.           pb = pb + 1
  11.           B(pb) = A(i)
  12.           sortEvOd A(), i + 1, B(), C()
  13.        Else
  14.           pc = pc + 1
  15.           C(pc) = A(i)
  16.           sortEvOd A(), i + 1, B(), C()
  17.        End If
  18.     End If
  19.  
  20. End Sub
  21.  
  22. Sub Test()
  23.  
  24. Dim AA(1 To 30) As Integer
  25. Dim BB(1 To 30) As Integer
  26. Dim CC(1 To 30) As Integer
  27.  
  28.     Randomize
  29.  
  30.     For i% = 1 To 30
  31.         AA(i%) = Rnd * 10
  32.     Next i%
  33.    
  34.     sortEvOd AA(), 1, BB(), CC()
  35.    
  36.     For i% = 1 To pb
  37.         Debug.Print "B("; i%; ")="; BB(i%)
  38.     Next i%
  39.  
  40.     For i% = 1 To pc
  41.         Debug.Print "C("; i%; ")="; CC(i%)
  42.     Next i%
  43.  
  44. End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.923 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы