С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
Эмил
0 / 0 / 1
Регистрация: 25.12.2016
Сообщений: 23
1

Отсортировать массив

25.12.2016, 13:53. Просмотров 1181. Ответов 8
Метки нет (Все метки)

помогите.

Линейный целочисленный массив размером N заполнен только нулями и единицами в произвольном порядке. Вам следует переместить элементы так, чтобы в начале массива были нули, а затем единицы.
Формат ввода

В первой строке входного файла input.txt записано одно число N (N ≤ 1000). Во второй строке записано N нулей и единиц через пробел.
Формат вывода

В выходном файле output.txt в единственной строку вывести новый массив в котором вначале расположены все нули, а затем единицы
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.12.2016, 13:53
Ответы с готовыми решениями:

Отсортировать массивы, объединить и результирующий массив отсортировать
Помогите пожалуйста, нужно написать в паскале программу: Даны массив А(16),...

Вычислить среднее арифметическое элементов, дописать в массив и отсортировать массив по возростанию
5)Вычислить среднее арифметическое элементов, дописать в массив и отсортировать...

Массив символов. В процедуре отсортировать массив по алфавиту в обратном порядке
Ввести данные (тип данных указан в вариантах) с клавиатуры в виде «Х=», где i –...

Сформировать массив по формуле Yk=K*cos (Ak). Отсортировать массив по возрастанию
Дан массив размера N. Сформировать массив Yn, каждый элемент которого...

Отсортировать массив
Дан линейный массив из 10 чисел. Отсортировать массив по закону: первый...

8
Tosse
56 / 56 / 114
Регистрация: 09.12.2016
Сообщений: 143
25.12.2016, 15:59 2
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
const
m = 1000;
var X:array[1..m] of integer;
i, N, k, buf: integer;
begin
writeln('Введите количество элементов массива');
readln(N);
writeln('Введите элементы массива');
for i:=1 to N do
    read(X[i]);
writeln;
k:=N;
i:=1;
while i <> k  do
    if X[i] = 1 then
        if X[k] = 0 then
            begin
            X[k]:=1;
            X[i]:=0;
            inc(i);dec(k)
            end
        else
            dec(k)
     else
         inc(i);
writeln('Итоговый массив:');
for i:=1 to N do
    write(X[i]:4);
end.
1
Cyborg Drone
Модератор
5480 / 3297 / 2483
Регистрация: 17.08.2012
Сообщений: 10,595
25.12.2016, 22:09 3
Лучший ответ Сообщение было отмечено Эмил как решение

Решение

Tosse, обратите внимание на стилистику вопроса. Это - вопрос с "обучающего" или "олимпийского" сайта. Ввиду того, что у големов, посаженных на этих сайтах для проверки заданий, весьма идиотские требования к оформлению программ, и всяческие человеческие штучки для них чужды, решение должно быть тупым и строгим, и не содержать элементов интерфейса, предназначенных для людей. Поэтому поясняющие надписи считаются за ошибку (особенно readln в конце программы, но это так, для справки). Можно, как у Вас, выводить числа через три пробела, но необязательно. Големы ставят хорошие баллы за маленькие и быстрые программы, выполняющие заданные действия, поэтому, к примеру, массивы, лучше не применять.

В программе Вы верно подметили, что количество разновидностей элементов массива ограничено. Можно использовать сортировку подсчётом. А вот массив совершенно не требуется. Вот такая программа получит гору големских очков:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
var i, n, z, t: integer;
begin
  //assign(input, 'input.txt');
  //reset(input);
  z := 0;
  readln(n);
  for i := 1 to n do
    begin
      read(t);
      if t = 0 then inc(z)
    end;
  //close(input);
  //assign(output, 'output.txt');
  //rewrite(output);
  for i := 1 to z do write(0:2);
  for i := z + 1 to n do write(1:2)//;
  //close(output)
end.
Как правило, файловый ввод-вывод не требуется, если всё-таки он нужен, следует раскомментировать строчки с переназначением стандартного ввода-вывода на файлы. В большинстве случаев комментарии можно удалить.
2
Эмил
0 / 0 / 1
Регистрация: 25.12.2016
Сообщений: 23
27.12.2016, 19:21  [ТС] 4
+Cyborg Drone, помогите с задачей я отправлял свое решение , но големы говорят что решение не правильное.Им понравилось Ваше решение.
Линейный целочисленный массив размером N заполнен числами по модулю не более 105 в произвольном порядке. Следует определить сколько чисел в массиве k-значных чисел.
Формат ввода

В первой строке входного файла записано два числа N и K (N ⩽ 1000), (1 ⩽ k ⩽ 5). Во второй строке записано N целых чисел через пробел. N по модулю не превышает 105.
Формат вывода

Во выходном файле вывести одно число, k - значных чисел
0
bormant
Модератор
Эксперт Pascal/DelphiЭксперт NIX
4164 / 2754 / 2179
Регистрация: 22.11.2013
Сообщений: 7,688
27.12.2016, 19:53 5
Pascal
1
2
3
4
5
6
var n, m, k: Integer; t, l, r: Longint;
begin
  ReadLn(n,k); r:=10; for k:=2 to k do r:=r*10; l:=r div 10*Ord(k>1); {m:=0;}
  for n:=1 to n do begin Read(t); Inc(m,Ord((t>=l) and (t<r))); end;
  WriteLn(m);
end.
0
Эмил
0 / 0 / 1
Регистрация: 25.12.2016
Сообщений: 23
31.12.2016, 07:28  [ТС] 6
bormant, Ваши ответы мне помогли , но можно Вас попросить удалить эту тему.Заранее благодарен
0
bormant
Модератор
Эксперт Pascal/DelphiЭксперт NIX
4164 / 2754 / 2179
Регистрация: 22.11.2013
Сообщений: 7,688
31.12.2016, 12:50 7
Попросить-то можно. Но ответ содержится в п.2.3 правил форума.
Ссылка на правила третья слева (после Профиль и Закладки) в верхней части форума.
0
Эмил
0 / 0 / 1
Регистрация: 25.12.2016
Сообщений: 23
31.12.2016, 14:17  [ТС] 8
bormant, там написано что удаляется тема без уведомления пользователя.
0
bormant
Модератор
Эксперт Pascal/DelphiЭксперт NIX
4164 / 2754 / 2179
Регистрация: 22.11.2013
Сообщений: 7,688
31.12.2016, 14:36 9
2.3. Сообщения и темы, а также другой контент, размещаемый на форуме, по просьбам пользователей не удаляется и не закрывается.
Аминь.
0
31.12.2016, 14:36
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.12.2016, 14:36

Отсортировать массив
Отсортировать массив который содержит имена и фамилии студентов и их средний...

отсортировать массив
Отсортировать элементы массива, стоящие на нечётных местах по возрастанию, вот...

Отсортировать массив
Сформировать массив B(k) из элементов нечетных столбцов массива A(m,n)....


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru