Предмет: Информатика,
автор: nataschasaprik
Пожалуйста, помогите составить программу в паскале. В массиве X(N) каждый элемент равен 0, 1 или 2. Переставить элементы массива так, чтобы сначала располагались все единицы, затем все двойки и, наконец, все нули (дополнительного массива не заводить).
Ответы
Автор ответа:
0
const
n=10;
var
a:array[1..n]of integer;
i,j,buf:integer;
begin
for i:=1 to n do
begin
a[i]:=random(3);
write(a[i]:4);
end;
{сортирую по возрастанию}
for i:=1 to n-1 do
for j:=i+1 to n do
if a[i]<a[j]then
begin
buf:=a[i];
a[i]:=a[j];
a[j]:=buf;
end;
{пересылаю нули в конец масива}
for i:=1 to n-1 do
for j:=i+1 to n do
if a[i]=0 then
begin
buf:=a[i];
a[i]:=a[j];
a[j]:=buf;
end;
for i:=1 to n do
write(a[i]:4);
end.
n=10;
var
a:array[1..n]of integer;
i,j,buf:integer;
begin
for i:=1 to n do
begin
a[i]:=random(3);
write(a[i]:4);
end;
{сортирую по возрастанию}
for i:=1 to n-1 do
for j:=i+1 to n do
if a[i]<a[j]then
begin
buf:=a[i];
a[i]:=a[j];
a[j]:=buf;
end;
{пересылаю нули в конец масива}
for i:=1 to n-1 do
for j:=i+1 to n do
if a[i]=0 then
begin
buf:=a[i];
a[i]:=a[j];
a[j]:=buf;
end;
for i:=1 to n do
write(a[i]:4);
end.
Автор ответа:
0
Вот моё решение (взяла из книги):
Автор ответа:
0
Program novay20;
Uses Crt;
Type om=array[1..256] of integer;
Var X:om;
Uses Crt;
Type om=array[1..256] of integer;
Var X:om;
Автор ответа:
0
i,N,s0,s1,s2:integer;
Procedure print_om(X:om;k:integer);
Var j:integer;
Begin
write ( ') ');
for j:=1 to k do
if j<>k then write (X[j], ', ');
else write (X[j]);
end;
Begin
Clrscr;
s0:=0; s1:=0; s2:=0;
write ('Сколько элементов в массиве: ');
Readln (N);
Writeln;
Writeln ('Введите элементы массива: ');
for i:=1 to N do
Procedure print_om(X:om;k:integer);
Var j:integer;
Begin
write ( ') ');
for j:=1 to k do
if j<>k then write (X[j], ', ');
else write (X[j]);
end;
Begin
Clrscr;
s0:=0; s1:=0; s2:=0;
write ('Сколько элементов в массиве: ');
Readln (N);
Writeln;
Writeln ('Введите элементы массива: ');
for i:=1 to N do
Автор ответа:
0
Begin
write (i, ') ');
Readln (X[i]);
case X[i] of
0:inc (s0);
1:inc (s1);
2:inc (s2);
else writeln; writeln ('Неверен ввод данных');
Readln;
Exit;
end;
end;
writeln;
for i:=1 to s1 do
X[i]:=1;
for i:=s1+1 to s1+s2 do
X[i]:=2;
for i:=s1+s2+1 to N do
X[i]:=0;
writeln;
writeln ('После перестановки элементов массив станет таким: ');
for i:=1 to N do
write (X[i]:2);
readln;
end.
write (i, ') ');
Readln (X[i]);
case X[i] of
0:inc (s0);
1:inc (s1);
2:inc (s2);
else writeln; writeln ('Неверен ввод данных');
Readln;
Exit;
end;
end;
writeln;
for i:=1 to s1 do
X[i]:=1;
for i:=s1+1 to s1+s2 do
X[i]:=2;
for i:=s1+s2+1 to N do
X[i]:=0;
writeln;
writeln ('После перестановки элементов массив станет таким: ');
for i:=1 to N do
write (X[i]:2);
readln;
end.
Похожие вопросы
Предмет: Другие предметы,
автор: Аноним
Предмет: История,
автор: Аноним
Предмет: Математика,
автор: vlasenkmaria
Предмет: Алгебра,
автор: yousunshine