Разложить положительные и отрицательные числа по разным массивам

Случайные числа в диапазоне от -5 до 5 разложить по двум массивам: в одни помещать только положительные, во второй — только отрицательные. Числа, равные нулю, игнорировать. Вывести на экран все сгенерированные случайные числа и элементы обоих массивов.

  • Изначально оба массива пусты. Присвоим двум разным переменным-индексам массивов нули.
  • В цикле выполняем следующие действия.
    1. Генерируем случайное число и выводим его на экран.
    2. Если очередное число положительное, то увеличиваем индекс массива на единицу и записываем в соответствующую ячейку это число.
    3. Если же генерируется отрицательное число, то увеличиваем индекс массива отрицательных чисел и записываем в массив число.
  • В циклах от первого до последнего элемента выводим на экран содержимое массивов положительных и отрицательных чисел. Их переменные-индексы указывают на количество элементов в массивах.
Pascal

const
N = 21;
var
b,c: array[1..N] of integer;
num: integer;
i, j, k: byte;
begin
randomize;
j := 0;
k := 0;
for i:=1 to N do begin
num := random(11)-5;
write(num:3);
if num > 0 then begin
j := j+1;
b[j] := num;
end
else if num < 0 then begin
k := k + 1;
c[k] := num;
end;
end;

writeln;
for i:=1 to j do write(b[i]:3);
writeln;
for i:=1 to k do write(c[i]:3);
writeln;
end.



4 -2 -1 3 -4 5 3 0 -2 -2 -2 0 1 -5 -1 2 3 -2 5 0 -5
4 3 5 3 1 2 3 5
-2 -1 -4 -2 -2 -2 -5 -1 -2 -5
Язык Си

#include
#define N 20
main() {
int a[N], b[N], i,j,k, n;
srand(time(NULL));
j = 0;
k = 0;
for (i=0; i< N; i++) {
n = rand()%11 - 5;
printf("%3d", n);
if (n > 0) {
a[j] = n;
j += 1;
} else
if (n < 0) {
b[k] = n;
k += 1;
}
}
printf("\n");
for (i=0; i< j; i++) printf("%3d", a[i]);
printf("\n");
for (i=0; i< k; i++) printf("%3d", b[i]);
printf("\n");
}



0 -2 -3 2 -2 5 -2 2 4 -1 2 1 5 0 2 -1 -1 -2 -4 -4
2 5 2 4 2 1 5 2
-2 -3 -2 -2 -1 -1 -1 -2 -4 -4
Python

from random import random
a = []
b = []
for i in range(20):
n = int(random() * 11) - 5
print(n, end=', ')
if n > 0:
a.append(n)
elif n < 0 :
b.append(n)
print()
print(a)
print(b)



-3, -5, -2, 2, -5, 5, -3, -3, 5, 2, 0, -4, 5, 1, -5, 2, -1, 5, 3, 4,
[2, 5, 5, 2, 5, 1, 2, 5, 3, 4]
[-3, -5, -2, -5, -3, -3, -4, -5, -1]

На Питоне данная задача решается проще, т.к. можно опустить индексы списков и просто добавлять элементы в конец списков. Также можно вывести весь список на экран, вызвав переменную с которой он связан, а не обращаться к каждому элементу отдельно.
КуМир

алг фильтрация
нач
цел N = 10
цел таб a[1:N], b[1:N]
цел i, j, k, num
j := 0
k := 0
нц для i от 1 до N
num := int(rand(0,11)) - 5
вывод num, " "
если num > 0 то
j := j + 1
a[j] := num
иначе если num < 0 то
k := k + 1
b[k] := num
все
все
кц
вывод нс
нц для i от 1 до j
вывод a[i], " "
кц
вывод нс
нц для i от 1 до k
вывод b[i], " "
кц
кон



2 1 3 0 5 -5 3 -4 1 0
2 1 3 5 3 1
-5 -4
Basic-256

N = 20
dim a(N)
dim b(N)
j = 0
k = 0
for i=0 to N
n = int(rand * 11) - 5
print n + " ";
if n > 0 then
a[j] = n
j = j+1
else
if n < 0 then
b[k] = n
k = k+1
endif
endif
next i
print

for i=0 to j-1
print a[i]+" ";
next i
print
for i=0 to k-1
print b[i]+" ";
next i



-3 0 4 -3 3 5 4 -2 4 0 -4 2 -3 3 -2 -1 5 -5 4 -3 5
4 3 5 4 4 2 3 5 4 5
-3 -3 -2 -4 -3 -2 -1 -5 -3

Оцените статью
Добавить комментарий