Переставить числа в последовательности, если знаки чисел не чередуются - VB

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

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

Даны числа a1, a2,...,an, каждое из которых отлично от нуля. Если в последовательности отрицательные и положительные числа чередуются (- + - + ... или + - + - ...), то последовательность не изменяется. Иначе в последовательности вначале поставить все отрицательные члены, затем положительные, сохранив порядок их следования. Пользоваться можно только одним массивом ai. Надеюсь на вашу помощь, могут отчислить

Решение задачи: «Переставить числа в последовательности, если знаки чисел не чередуются»

textual
Листинг программы
  1. Private Sub Command1_Click()
  2. n = InputBox("n", , 10) - 1
  3. ReDim a(n)
  4. st = ""
  5. For i = 0 To n
  6.     a(i) = Fix(Rnd() * 21 - 10)
  7.     If a(i)=0 then a(i)=1
  8.     If i > 1 Then If Sgn(a(i)) = Sgn(a(i - 1)) Then flag = True
  9.     st = st & a(i) & vbTab
  10. Next
  11. Text1 = st
  12.  
  13. If flag Then
  14.     st = ""
  15.     For i = 1 To n
  16.         For j = i To 1 Step -1
  17.             If a(j) < 0 And a(j - 1) >= 0 Then
  18.                 t = a(j): a(j) = a(j - 1): a(j - 1) = t
  19.             Else
  20.                 Exit For
  21.             End If
  22.         Next
  23.     Next
  24.     For i = 0 To n
  25.         st = st & a(i) & vbTab
  26.     Next
  27. End If
  28. Text2 = st
  29. End Sub

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


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

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

11   голосов , оценка 3.545 из 5

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

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

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