Дан массив C(m), m<=30. Расположить его элементы так, чтобы в начале шли положительные, а...

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

Дан массив C(m), m<=30. Расположить его элементы так, чтобы в начале шли положительные, а потом все остальные. Исходный и переформированный массивы вывести на печать.<br>
Желательно в Фортране, но можно и в Паскале.


Информатика (112 баллов) | 62 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

Const
    n = 30;

type
    array100 = array [1..100] of integer;

var
    a: array100;
    i, t: integer;
    f: boolean;

procedure PrintArray(var a: array100);
var
    i: integer;
begin
    for i := 1 to n do
        write(a[i]:3, ' ');
    writeln;
end;

begin
    randomize;
    for i := 1 to n do
        a[i] := random(99) - 50;
       
    PrintArray(a);
   
    repeat
        f := true;
        for i := 1 to n - 1 do
            if (a[i] < 0) and (a[i + 1] >= 0) then begin
                f := false;
                t := a[i];
                a[i] := a[i + 1];
                a[i + 1] := t;
            end;
    until f;
    PrintArray(a);
   
    readln;
end.

(53.1k баллов)