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

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

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

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

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

textual
Листинг программы
Private Sub Command1_Click()
n = InputBox("n", , 10) - 1
ReDim a(n)
st = ""
For i = 0 To n
    a(i) = Fix(Rnd() * 21 - 10)
    If a(i)=0 then a(i)=1
    If i > 1 Then If Sgn(a(i)) = Sgn(a(i - 1)) Then flag = True
    st = st & a(i) & vbTab
Next
Text1 = st
 
If flag Then
    st = ""
    For i = 1 To n
        For j = i To 1 Step -1
            If a(j) < 0 And a(j - 1) >= 0 Then 
                t = a(j): a(j) = a(j - 1): a(j - 1) = t
            Else
                Exit For
            End If
        Next
    Next
    For i = 0 To n
        st = st & a(i) & vbTab
    Next
End If
Text2 = st
End Sub

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


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

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

11   голосов , оценка 3.545 из 5
Похожие ответы