• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о проекте и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Сортировка массива

Serega61

Ученик
Регистрация
23 Дек 2012
Сообщения
5
Реакции
0
Баллы
0
Сортировка массива

дан массив x(n). Переписать в массив y(n) элементы массива 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
 
Подскажите как убрать нули в массиве после перестановки?
Да... опять на те же грабли.
Прежде всего, необходимо зафиксировать длину нового массива Y. В том варианте, который предложил я, она равна k, в Вашем варианте это k-1. В следующей части программы всюду вместо n нужно поставить k-1.
 
Назад
Сверху