Сортировка массива
дан массив x
. Переписать в массив y
элементы массива x, большие 3. Затем упорядочить методом "выбора и перестановки" по возрастанию новый массив. Подскажите как убрать нули в массиве после перестановки?
program sort_2;
const n=10;
var
x: array [1..n] of real;
y: array [1..n] of real;
k,i,j,n_min: integer; min,temp: real;
begin
writeln('Массив Х');
randomize;
for i:=1 to n do
begin
x:=random(100)-50;
write(x:4:0);
end;
writeln;
writeln('Массив Y');
k:=1;
for i:=1 to n do
begin
if x>3 then
begin
y[k]:=x;
write('b[',k,']=',y[k],' ');
k:=k+1;
end;
end;
writeln;
//------------------------------------
for j:=1 to n do
begin
min:=1000;
for i:=j to n do
begin
if y<min then
begin
min:=y;
n_min:=i;
end;
end;
temp:=y[n_min];
y[n_min]:=y[j];
y[j]:=temp;
end;
writeln('после сортировки');
for i:=1 to n do
write(' ',y);
writeln
end.
Результат:
Массив Х
-25 -24 -37 45 -25 -4 3 -17 42 26
Массив Y
b[1]=45 b[2]=42 b[3]=26
после сортировки
0 0 0 0 0 0 0 26 42 45
дан массив x
program sort_2;
const n=10;
var
x: array [1..n] of real;
y: array [1..n] of real;
k,i,j,n_min: integer; min,temp: real;
begin
writeln('Массив Х');
randomize;
for i:=1 to n do
begin
x:=random(100)-50;
write(x:4:0);
end;
writeln;
writeln('Массив Y');
k:=1;
for i:=1 to n do
begin
if x>3 then
begin
y[k]:=x;
write('b[',k,']=',y[k],' ');
k:=k+1;
end;
end;
writeln;
//------------------------------------
for j:=1 to n do
begin
min:=1000;
for i:=j to n do
begin
if y<min then
begin
min:=y;
n_min:=i;
end;
end;
temp:=y[n_min];
y[n_min]:=y[j];
y[j]:=temp;
end;
writeln('после сортировки');
for i:=1 to n do
write(' ',y);
writeln
end.
Результат:
Массив Х
-25 -24 -37 45 -25 -4 3 -17 42 26
Массив Y
b[1]=45 b[2]=42 b[3]=26
после сортировки
0 0 0 0 0 0 0 26 42 45