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

Подскажите, что нужно изменить, чтобы программа правильно работала(паскаль) Заполнить массив случайными числами в интервале [-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 begin a[c]:=w[c]; end; end; writeln('Получившийся массив:'); writeln(' '); for i:=1 to 10 do write(w[i],' '); end.
Гость
Ответ(ы) на вопрос:
Гость
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         begin             c := c + 1;             w[c] := a[i];         end;     end;          writeln('Результат:');     for i := 1 to c do         write(w[i], ' '); end.
Гость
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.
Не нашли ответ?
Ответить на вопрос
Похожие вопросы