2 / 2 / 0
Регистрация: 24.11.2009
Сообщений: 40
1

Переставить элементы массива так, чтобы сначала располагались все 0, затем 1, затем 2

29.01.2010, 15:46. Показов 2258. Ответов 15
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Общие указания при составлении программ к данной теме:
1. Размер массива задать константой в блоке описания.
2. Массив заполнить случайными числами, если другого заполнения не диктует задача.
3. Вывести исходный массив и массив после преобразования по условию задачи.

само задание: В массиве X[1..n] каждый элемент равен 0, 1 или 2. Переставить элементы массива так, чтобы сначала располагались все 0, затем 1, затем 2. Сортировку при этом не делать.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.01.2010, 15:46
Ответы с готовыми решениями:

Переставить элементы массива так, чтобы сначала располагались все нули, затем единицы
Перестановка. В массиве X каждый элемент равен 0, 1 или 2. Переставить элементы массива так, чтобы...

Массив. Переставить элементы массива так, чтобы сначала располагались все нули, затем все единицы
Тема Одномерные массивы В массиве X(1:n) каждый элемент равен 0, 1 или 5. Переставить элементы...

Заполнить массив Y так, чтобы сначала располагались отрицательные, а затем положительные элементы массива X
Заполнить массив Y так, чтобы сначала располагались отрицательные, а затем положительные элементы...

Расположить элементы массива так, чтобы в начале располагались все отрицательные элементы, а затем положительные.
Расположить элементы массива так, чтобы в начале располагались все отрицательные элементы, а затем...

15
80 / 82 / 36
Регистрация: 20.11.2009
Сообщений: 326
29.01.2010, 17:17 2
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Бредовинький код у меня конечно... но без сортировки не знаю как больше :
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
program k;
const
n = 500;
var
a,b,c,d:array[1..n] of real;
i,j,f,m,t: integer;
BEGIN
for i:=1 to n do
read(a[i]);
 
for i:=1 to n do
if a[i] = 0 then inc(f) else if a[i] = 1 then inc(m) else inc(t);
 
writeln('Нули:  ');
for j:=1 to t do writeln(0,'   ');
writeln('единицы  ');
for j:=1 to m do writeln(1,'   ');
writeln('Двойки:  ');
for j:=1 to f do writeln(2, '   ');
 
END.
0
LegenD
45 / 44 / 15
Регистрация: 10.12.2009
Сообщений: 109
29.01.2010, 17:21 3
Kizer, ты хочешь чтобы он вводил 500 значении вручную??
0
141 / 135 / 69
Регистрация: 15.12.2009
Сообщений: 343
29.01.2010, 17:23 4
добавить надо
Pascal
1
2
3
4
5
randomize;
write('n:= ');
read(n);
for i:=1 to n do
a[i]:=random(2);
написано же случайный образом
0
80 / 82 / 36
Регистрация: 20.11.2009
Сообщений: 326
29.01.2010, 17:25 5
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Пардон муа... забыл что там нужен рандом:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
program k;
const
n = 100;
var
a,b,c,d:array[1..n] of byte;
i,j,f,m,t: integer;
BEGIN
for i:=1 to n do begin
a[i]:=random(2); write(a[i], '   '); end; 
 
for i:=1 to n do
if a[i] = 0 then inc(f) else if a[i] = 1 then inc(m) else inc(t);
 
writeln('Нули:  ');
for j:=1 to t do writeln(0,'   ');
writeln('единицы  ');
for j:=1 to m do writeln(1,'   ');
writeln('Двойки:  ');
for j:=1 to f do writeln(2, '   ');
 
END.
0
2 / 2 / 0
Регистрация: 24.11.2009
Сообщений: 40
29.01.2010, 17:28  [ТС] 6
так а что программа эта делает, запускаю и кроме ввода цифр ничего не происходит

Добавлено через 48 секунд
ой, не обнавил страницу потом))

Добавлено через 1 минуту
Нули:
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
единицы
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
Двойки:


вот што выводи
0
141 / 135 / 69
Регистрация: 15.12.2009
Сообщений: 343
29.01.2010, 17:29 7
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
const p=6;
var a:array[1..p] of integer;
k1,k2,k3,i,n:integer;
begin
randomize;
write('n:= ');
read(n);
for i:=1 to n do
a[i]:=random(2);
for i:=1 to n    do
writeln(a[i]);
for i:=1 to n do
if a[i]=0 then k1:=k1+1;
for i:=1 to n do
if a[i]=1 then k2:=k2+1;
for i:=1 to n do
if a[i]=2 then k3:=k3+1;
for i:=1 to k1 do
write('0');
for i:=1 to k2 do
write('1');
for i:=1 to k3 do
write('2');
readln;
end.
0
2 / 2 / 0
Регистрация: 24.11.2009
Сообщений: 40
29.01.2010, 17:34  [ТС] 8
andrei63, а чё двойки невыводятся

Добавлено через 16 секунд
???
0
141 / 135 / 69
Регистрация: 15.12.2009
Сообщений: 343
29.01.2010, 17:36 9
random(3)
1
80 / 82 / 36
Регистрация: 20.11.2009
Сообщений: 326
29.01.2010, 17:37 10
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Рано я бросил курить Гашиш...
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
program k;
const
n = 5;
var
a,b,c,d:array[1..n] of byte;
i,j,f,m,t: integer;
BEGIN
randomize;
for i:=1 to n do begin
a[i]:=random(3); write(a[i], '   '); end;
 
for i:=1 to n do
if a[i] = 0 then inc(f) else if a[i] = 1 then inc(m) else inc(t);
 
writeln('Нули:  ');
for j:=1 to f do writeln(0,'   ');
writeln('единицы  ');
for j:=1 to m do writeln(1,'   ');
writeln('Двойки:  ');
for j:=1 to t do writeln(2, '   ');
 
END.
Вот Ваша программа. Постарайтесь хотя бы чуть-чуть вникнуть в код
0
2 / 2 / 0
Регистрация: 24.11.2009
Сообщений: 40
29.01.2010, 17:41  [ТС] 11
посмотрим на ваши 2 проги))что препод скажет))

Добавлено через 1 минуту
посмотрим что препод скажет)

Добавлено через 14 секунд
блин, комп тупит)
0
175 / 172 / 40
Регистрация: 14.11.2009
Сообщений: 507
29.01.2010, 17:42 12
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Вот ваш код
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
const
n=15;
type
mas=array[1..n] of byte;
 
procedure writemas(a:mas);
var
i:integer;
begin
write('[');
for i:=1 to n do
write(a[i]:3);
writeln(']');
end;
 
procedure replace (s,s1:byte; var a:mas);
var
i,x,j:integer;
begin
for i:=1 to n-1 do
for j:=n downto i+1 do
if (a[i]=s) and (a[j]=s1) then begin
x:=a[i];
a[i]:=a[j];
a[j]:=x;
end;
end;
 
var
a:mas;
i,j,x:integer;
begin
writeln('My Vector');
randomize;
for i:=1 to n do
a[i]:=random(3);
writemas(a);
replace(2,1,a);
replace(2,0,a);
replace(1,0,a);
writeln('Solution');
writemas(a);
readln
end.
Добавлено через 26 секунд
Цитата Сообщение от hellsing001 Посмотреть сообщение
посмотрим на ваши 2 проги))что препод скажет))

Добавлено через 1 минуту
посмотрим что препод скажет)

Добавлено через 14 секунд
блин, комп тупит)
препод такое решение не примет гарантировано
0
2 / 2 / 0
Регистрация: 24.11.2009
Сообщений: 40
29.01.2010, 17:45  [ТС] 13
твою темболее))я на 1 курсе и процедуры ещё не проходили))
0
80 / 82 / 36
Регистрация: 20.11.2009
Сообщений: 326
29.01.2010, 17:45 14
pikusfikus, читайте пункт 2 задания. Вы, думаете, что мы сортировку не знаем как сделать?
0
175 / 172 / 40
Регистрация: 14.11.2009
Сообщений: 507
29.01.2010, 17:48 15
Цитата Сообщение от Kizer Посмотреть сообщение
pikusfikus, читайте пункт 2 задания. Вы, думаете, что мы сортировку не знаем как сделать?
вы уверены что это сортировка?вы то код читал?обмен элементов это не сортировка.

Добавлено через 1 минуту
Цитата Сообщение от Kizer Посмотреть сообщение
pikusfikus, читайте пункт 2 задания. Вы, думаете, что мы сортировку не знаем как сделать?
Вы видели условия?"Переставить элементы массива так,",именно переставить,а не вывести их таким
детским способом.
0
Kizer
29.01.2010, 17:55     Переставить элементы массива так, чтобы сначала располагались все 0, затем 1, затем 2
  #16

Не по теме:

pikusfikus, молодец. Спорить не буду, мб Вы и правы.

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.01.2010, 17:55

Упорядочить элементы вектора так, чтобы сначала размещались всё отрицательные, а затем все положительные
Дан вектор А(а1,а2,...,а10). Упорядочить элементы вектора так, чтобы сначала размещались всё...

Сформировать массив так, чтобы сначала шли отрицательные элементы, затем положительные и, наконец, нулевые
HELP! люди срочно требуется ваща помошь, по масивам! вот задача: Задан массив y из n целых...

Преобразовать массив так, чтобы сначала располагались все отрицательные элементы, а потом все положительные
ребят помогите срочно у мя экзамен!!!!!!!!!!!! Одномерный массив состоит из N вещественных...

Преобразовать массив так, чтобы сначала располагались все элементы, отличающиеся от макс не более чем на 20%
Дан одномерный массив, состоящий из N вещественных элементов. Преоброзовать массив таким образом,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru