Форум программистов
 
Регистрация на форуме тут, о проблемах пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Как купить рекламу на форуме


Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме 20000 рублей в месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.04.2021, 20:19   #1
Narvik
Пользователь
 
Регистрация: 03.03.2021
Сообщений: 20
По умолчанию Массив

Здравствуйте. Я работаю сейчас с массивом и столкнулся с проблемой, как мне сделать, чтобы после каждого элемента, если он отличен от предыдущего, то элемент удалялся.

Пример:
Входные данные:
1 8 3 4 4 5
Выходные данные:
1 4
т.е идёт сравнение элементов, 1 <> 8, значить 8 удаляется, 8 <> 3, значит 3 удаляется, 3 <> 4, значить 4 удаляется, 4 = 4, значить 4 остаётся, 4 <> 5, значит 5 удаляется.

Помогите пожалуйста!

Мой код:
Код:
Program lb_4;
Var i,n,k: integer ;
    m: array [1..1000] of integer;
Begin
  repeat
    writeln('Введите любое целое количество элементов');
    readln(n);
  if n <= 0 then
    writeln('n не может быть меньше или равно нулю');
  until n>0;
  for i := 1 to n do begin
    writeln('Введите i элемент:');
    readln(m[i]);
  end;
  writeln('Исходный массив:');
  for i := 1 to n do begin
  write(m[i]:2);
  end;
  for i:=1 to N-1 do 
        for k:=i+1 to n do 
            if m[k] <> m[i] then begin
              break;
            end;
  writeln;
  writeln('Массив после удаления ');
  for k := 1 to n do
    write(m[i]:2); 
    writeln();
End.
Narvik вне форума Ответить с цитированием
Старый 11.04.2021, 22:17   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 6,176
По умолчанию

Код:
program lb_4;

var
  i, n, k: integer;
  m: array [1..1000] of integer;

begin
  repeat
    writeln('Введите любое целое количество элементов от 1 до 1000');
    readln(n);
    if n < 1 then
      writeln('n не может быть меньше единицы')
    else if n > 1000 then
      writeln('n не может быть больше тысячи')
  until (n >= 1) and (n <= 1000);
  for i := 1 to n do 
  begin
    write('Введите ', i, ' элемент: ');
    readln(m[i]);
  end;
  writeln('Исходный массив:');
  for i := 1 to n do 
  begin
    write(m[i], ' ');
  end;
  k := 1;
  for i := 2 to n do
    if m[i] = m[i - 1] then
    begin
      inc(k);
      m[k] := m[i];
    end;
  writeln;
  writeln('Массив после удаления:');
  for i := 1 to k do
    write(m[i], ' '); 
  writeln();
end.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 12.04.2021, 11:30   #3
Narvik
Пользователь
 
Регистрация: 03.03.2021
Сообщений: 20
По умолчанию

Спасибо!)
Narvik вне форума Ответить с цитированием
Ответ
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дан массив A размером 3*3. Составить программу, записывающие положительные элементы этого массива A в одномерный массив B, а отрицательные - в одномерный массив C SkaNi Паскаль, Turbo Pascal, PascalABC.NET 1 02.06.2017 08:07
Дан одномерный массив, сформировать новый массив по заданному правилу {Delphi} Nickolai47 Помощь студентам 5 16.12.2012 13:51
С# задан массив 5х5. сформировать массивы А и В. в массив А поместить элементы с четными индексами, в массив В с нечетны Koksa Помощь студентам 0 10.10.2011 10:26
Массив - Нужно написать массив и распечатать на экран с конца в начало(язык С++) econ Помощь студентам 1 29.05.2011 21:02


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS