Консультация № 174641
28.11.2009, 17:01
0.00 руб.
0 4 1
Добрый день, уважаемые эксперты! Помогите пожалуйста с одной задачкой!
Даны натуральное число n и вещественный массив из n чисел(массив одномерный). Преобразовать массив по следующему правилу: все отрицательные элементы массива перенести - в его конец, все положительные - в начало ,все равные нулю – в середину, сохраняя исходное взаимное расположение, как среди отрицательных, так среди и всех остальных. Вспомогательный массив не использовать!!!

Обсуждение

давно
Старший Модератор
31795
6196
28.11.2009, 20:19
общий
angel.nero:
Метод сортировки в самом массиве(Вспомогательный массив не использовать) есть в архиве рассылки(условие другое, но алгоритм одинаков).
Пострайтесь его найти, понять и предложить свой вариант в мини-форуме.
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

Неизвестный
02.12.2009, 19:39
общий
Уважаемые эксперты!Помогите пожалуйста с данной задачкой,просто я не нашел примера о котором говорил Зенченко Константин Николаевич
давно
Старший Модератор
31795
6196
02.12.2009, 20:43
общий
это ответ
Здравствуйте, angel.nero.

Смотрите приложение.
Массив создается с помощью генератора случайных чисел, поэтому в программе есть строчки:
a[4]:=0;
a[8]:=0;

Они вводят дополнительные нули.
Реализована ленивая сортировка.
Удачи!

Приложение:
const
n=10;
var
a:array[1..n]of real;
b:real;
i:integer;
begin
{создаем массив}
for i:=1 to n do
begin
a[i]:=10*random-5;
write(a[i]:7:3);
end;
writeln;
{контрольные пару нулей и вывод}
a[4]:=0;
a[8]:=0;
for i:=1 to n do
write(a[i]:7:3);
writeln;
i:=1;
{ленивая сортировка}
while i<n do
begin
if ((a[i]<0)and(a[i+1]>=0))or((a[i]=0)and(a[i+1]>0))then
begin
b:=a[i];
a[i]:=a[i+1];
a[i+1]:=b;
i:=1;
end
else
i:=i+1;;
end;
{вывод результата}
for i:=1 to n do
write(a[i]:7:3);
readln;
end.
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

давно
Старший Модератор
31795
6196
02.12.2009, 21:10
общий
Подобные задачи:
URL >>
URL >>
URL >>

Вспомогательный массив не использовать

Это значит нужно соритровать в самом массиве.

Особо не коментировал, т.к. думаю, что с программой разберетесь сами.
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

Форма ответа