Получить из двух массивов новый отсортированный массив, выбрав в него только отрицательные элементы - VB

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

Ребята, всем привет.Помогите,пожалуйста, с задачей. Даны два числовых массива A(N) и B(M). Получить из них новый отсортированный массив, выбрав в него только отрицательные элементы. Причём сортировка желательно подсчётом. Массив я создал, а сортировка подсчётом не работает.
Dim A() As Integer
Dim B() As Integer
Dim C() As Integer
Private Sub cmdRun_Click()
N = Val(InputBox("N"))
ReDim A(N)
k = 0
For i = 1 To N
A(i) = Val(InputBox("введите элемент массива"))
If A(i) < 0 Then k = k + 1: C(k) = A(i)
Next i
M = Val(InputBox(" M"))
ReDim A(M)
For i = 1 To M
A(i) = Val(InputBox("введите элемент массива"))
If A(i) < 0 Then k = k + 1: C(k) = A(i)
Next i
End Sub

Код к задаче: «Получить из двух массивов новый отсортированный массив, выбрав в него только отрицательные элементы - VB»

textual
Dim A() As Integer
Dim B() As Integer
Dim C() As Integer
Dim d() As Integer
Dim k, n, j, i As Integer
Private Sub cmdRun_Click()
n = Val(InputBox("Введите N"))
m = Val(InputBox("Введите M"))
ReDim A(n)
k = 0
ReDim C(m + n)
ReDim d(m + n)
For i = 1 To n
A(i) = Val(InputBox("Введите значение элемента массива A"))
If A(i) < 0 Then k = k + 1: C(k) = A(i)
Next i
ReDim B(m)
For i = 1 To m
B(i) = Val(InputBox("Введите значение элемента массива B"))
If B(i) < 0 Then k = k + 1: C(k) = B(i)
Next i
'сортировка
For i = 1 To k
d(i) = 0
Next i
For i = 1 To k
j = i - 1
Do While j >= 1
If C(i) < C(j) Then
d(j) = d(j) + 1
Else
d(i) = d(i) + 1
End If
j = j - 1
Loop
Next i
For i = m + n To 1 Step -1
For j = m + n To 1 Step -1
If d(j) = i - 1 And C(j) <> 0 Then Print C(j)
Next j
Next i
End Sub

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


СОХРАНИТЬ ССЫЛКУ