Переставить числа в последовательности, если знаки чисел не чередуются - 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