Подскажите, что нужно изменить, чтобы программа правильно работала(паскаль) Заполнить...

0 голосов
46 просмотров

Подскажите, что нужно изменить, чтобы программа правильно работала(паскаль)
Заполнить массив случайными числами в интервале [-100,100] и переставить элементы так, чтобы все положительные элементы стояли в начала массива, а все отрицательные и нули – в конце. Вычислите количество положительных элементов.
Пример:
Массив:
20 -90 15 -34 10 0
Результат:
20 15 10 -90 -34 0
Количество положительных элементов: 3

Var i,c:integer;
w:array[1..10] of integer;
a:array[1..10] of integer;
begin
randomize;
for i:=1 to 10 do
a[i]:=random(201)-100;
for i:=1 to 10 do
if a[i]>0 then
begin
w[i]:=a[i];
c:=c+1;
end;
writeln('Кол-во положительных элементов: ',c);
for i:=1 to 10 do
begin
if a[i]<=0 then <br> begin
a[c]:=w[c];

end;
end;
writeln('Получившийся массив:');
writeln(' ');
for i:=1 to 10 do
write(w[i],' ');
end.


Информатика (153 баллов) | 46 просмотров
Дано ответов: 2
0 голосов
Правильный ответ

Const
    n = 10;

var
    i, c: integer;
    a, w: array[1..n] of integer;

begin
    randomize;
    
    writeln('Исходный массив:');
    for i := 1 to n do
    begin
        a[i] := random(201) - 100;
        write(a[i], ' ');
    end;
    writeln;
    
    c := 0;
    for i := 1 to n do
        if a[i] > 0 then
        begin
            c := c + 1;
            w[c] := a[i];
        end;
    
    writeln('Кол-во положительных элементов: ', c);
    for i := 1 to n do
    begin
        if a[i] <= 0 then<br>        begin
            c := c + 1;
            w[c] := a[i];
        end;
    end;
    
    writeln('Результат:');
    for i := 1 to c do
        write(w[i], ' ');
end.

(53.1k баллов)
0 голосов

Var i,c,k,j:integer;a:array[1..10] of integer;beginrandomize;writeln('Получившийся массив:');for i:=1 to 10 do begina[i]:=random(201)-100; if a[i]>0 then k:= k +1;write(a[i],' ');end;for i:=1 to 10 do beginfor j:=2 to 10 do beginif a[j] > a[j-1] then beginc:=a[j]; a[j]:= a[j-1];a[j-1]:=c;end;end;end;
writeln;writeln('Кол-во положительных элементов: ',k);writeln('Измененный массив:');for i:=1 to 10 dowrite(a[i],' ');end.

(6.5k баллов)