DIM A(118), EL(-1 TO 1)
CLS
' Заполним массив и на экран его
RANDOMIZE TIMER
FOR i = 1 TO 118
A(i) = INT(RND * 51) - 25
PRINT A(i);
NEXT: PRINT STRING$(2, 13)
' Ищем
FOR i = 1 TO 118
EL(SGN(A(i))) = EL(SGN(A(i))) + 1
NEXT
PRINT "Otricatelnyh : "; EL(-1)
PRINT "Nulevyh : "; EL(0)
PRINT "Pologitelnyh : "; EL(1)
PRINT
' Формируем
DIM B(EL(-1)), C(EL(0)), D(EL(1))
FOR i = 1 TO 118
SELECT CASE SGN(A(i))
CASE -1: s1 = s1 + 1: B(s1) = A(i)
CASE 0: s2 = s2 + 1: C(s2) = A(i)
CASE ELSE: s3 = s3 + 1: D(s3) = A(i)
END SELECT
NEXT
' Убиваем ненужный массив
ERASE A
' Распечатываем
FOR i = 1 TO s1: PRINT B(i); : NEXT: PRINT : PRINT
FOR i = 1 TO s2: PRINT C(i); : NEXT: PRINT : PRINT
FOR i = 1 TO s3: PRINT D(i); : NEXT: PRINT : PRINT
Тестирование выполнено в программе QB64 ( Скачать )