Показать сообщение отдельно
Старый 24.12.2012, 15:48   #1 (permalink)
Student
Member
 
Регистрация: 14.12.2012
Сообщений: 13
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Задача на Паскале Массивы

задание:
В целочисленном векторе vectorn переместить в начало все нулевые элементы, за ними – все отрицательные элементы в порядке их следования, а за ними – все положительные элементы в порядке их следования.

Программа рабочая но нужно избавиться от masVih, т.е. использовать только один массив - кто-нибудь может помочь?


Uses Crt;
Var i,j:Byte;
mas:array[1..10] of integer;
masVih:array[1..10] of integer;
min,max,n:integer;
Begin

write ('n = ');
readln (n);
Write('min = ');
ReadLn(min);
Write('max = ');
ReadLn(max);
WriteLn;

WriteLn('Ishodny vector:');
Randomize;
for i:=1 to n do
begin
mas[i]:=random(max-min+1)+min;
write(mas[i]);
write(' ');
end;
WriteLn;

WriteLn('Vihodnoy vector:');
j:=1;

for i:=1 to n do
begin
if (mas[i]=0)then
begin
masVih[j]:=mas[i];
j:=j+1;
end;
end;

for i:=1 to n do
begin
if (mas[i]<0)then
begin
masVih[j]:=mas[i];
j:=j+1;
end;
end;
for i:=1 to n do
begin
if (mas[i]>0)then
begin
masVih[j]:=mas[i];
j:=j+1;
end;
end;

for i:=1 to n do
begin
write(masVih[i]);
write(' ');
end;
readln;
End.
Student вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070