Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.70/100: Рейтинг темы: голосов - 100, средняя оценка - 4.70
2 / 2 / 3
Регистрация: 06.10.2009
Сообщений: 123

Удалить из массива А (n) нулевые элементы

31.01.2010, 11:07. Показов 19194. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Удалить из массива А (n) нулевые элементы, передвинув на их место следующие элементы без нарушения порядка их следования. В результате должен получиться массив меньшего размера, не содержащий нулей

не получается никак сделать,помогите кто может!!

пожалуйста конечно!!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
31.01.2010, 11:07
Ответы с готовыми решениями:

Удалить нулевые элементы массива, а остальные расположить по убыванию
1. Задан массив, содержащий несколько нулевых элементов. Сжать его, выбросив эти элементы, а оставшиеся расположить по убыванию. 2. Дан...

Удалить из массива действительных чисел нулевые элементы
Удалить из массива действительных чисел нулевые элементы. с++

Сформировать из строк двумерного массива, содержащих нулевые элементы, одномерный массив. Нулевые элементы не выводить (удалить их)
Вот что у меня получилось, но это полная фигня... Помогите пожалуйста! var a:array of integer; b:array of integer; ...

14
Добрый самаритянин
 Аватар для John_Pa9JIbHuK
1107 / 622 / 139
Регистрация: 31.03.2009
Сообщений: 2,567
31.01.2010, 12:31
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
const
n=10;
var
i,j:integer;
Ar:Array [1..n] Of Integer;
Begin
For i:=1 To n Do
                Begin
                Ar[i]:=random(n-5);
                write(ar[i]:3);
                End;
For i:=1 To n Do
               if ar[i]=0 then
                             Begin
                             For j:=i to n-1 do
                                              begin
                                              ar[j]:=ar[j+1];
                                              end;
                             ar[n]:=0;
                             end;
writeln('');
For i:=1 To n Do
write(ar[i]:3);
End.
1
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
31.01.2010, 12:56
По условию ноли нужно удалить, а не переместить в конец.
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
uses Crt;
var  a:array[1..100] of integer;
     n,i,j,p,x:integer;
begin
ClrScr;
randomize;
write('Размер массмва n=');
readln(n);
writeln('Исходный массив:');
for i:=1 to n do
 begin
  a[i]:=random(4);
  write(a[i],' ');
 end;
writeln;
i:=1;
while i<=n do
if a[i]=0 then
 begin
  for j:=i to n-1 do
  a[j]:=a[j+1];
  n:=n-1;
 end
else i:=i+1;
writeln('Массив без нолей:');
for i:=1 to n do
write(a[i],' ');
readln
end.
2
Добрый самаритянин
 Аватар для John_Pa9JIbHuK
1107 / 622 / 139
Регистрация: 31.03.2009
Сообщений: 2,567
31.01.2010, 13:20
Puporev, вы считаете что удалили элементы из массива??

Добавлено через 1 минуту
так при создании массива его элементы уже равны нулю так я и переместил их в конец
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
31.01.2010, 13:22
Puporev, вы считаете что удалили элементы из массива??
Именно так
0
Мат в 32 хода
 Аватар для nikkka
237 / 172 / 18
Регистрация: 10.09.2009
Сообщений: 1,096
31.01.2010, 13:23
Puporev, а что если элементов массива больше чем 100?
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
31.01.2010, 13:31
Цитата Сообщение от nikkka Посмотреть сообщение
а что если элементов массива больше чем 100?
На такую глупость даже отвечать неудобно. Это учебная задача и никто не будет вводить больше 20-30 элементов. А если нужно чтобы не было больше 100, то нужно написать
Pascal
1
2
3
4
repeat
write('Размер массива не более 100 n=');
readln(n);
until n in [1..100];
Если нужно больше, то и размер его задать больше. Про динамические массивы в задании ничего не написано.
Это просто учебная задача на приобретение навыков для работы с массивами, в частности уметь написать алгоритм их сжатия.
0
Мат в 32 хода
 Аватар для nikkka
237 / 172 / 18
Регистрация: 10.09.2009
Сообщений: 1,096
31.01.2010, 13:34
Между прочим,вы не удалили элементы, а просто их не выводите. Они в конце массива. Разве не так?
0
Добрый самаритянин
 Аватар для John_Pa9JIbHuK
1107 / 622 / 139
Регистрация: 31.03.2009
Сообщений: 2,567
31.01.2010, 13:42
Цитата Сообщение от nikkka Посмотреть сообщение
Между прочим,вы не удалили элементы, а просто их не выводите. Они в конце массива. Разве не так?
Я про это и говорил Ваще в данном случае удалить элемент массива это значит присвоить ему значение равное нулю и просто невыводить
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
31.01.2010, 13:55
а просто их не выводите
Если бы Вы, господа, не пеной брызгали, а внимательно посмотрели код, или еще лучше прогнали бы его то увидели бы, что я изменял размерность массива после каждого удаления ноля. Фактический новый размер массива стал меньше на количество нолей и при вызове этого массива он будет нового размера и без нолей.
0
Мат в 32 хода
 Аватар для nikkka
237 / 172 / 18
Регистрация: 10.09.2009
Сообщений: 1,096
31.01.2010, 14:00
Массив как был из 100 элементов, так и остался. Вы просто уменьшели "границы" с 1..100 до 1..n.
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
31.01.2010, 14:04
Массив как был из 100 элементов
Да не был массив из 100 элементов. Это тип переменной был массив из 100 элементов. Фактический размер массива мы задаем, когда вводим N. А после удаления нолей это значение уменьшилось и стало равное новому размеру массива.
0
Добрый самаритянин
 Аватар для John_Pa9JIbHuK
1107 / 622 / 139
Регистрация: 31.03.2009
Сообщений: 2,567
31.01.2010, 14:25
даже не знаю по моему мнению размерность массива в данном случае 100 другой момент если массив динам. Может я и ошибаюсь... но почему то я уверен)))
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
31.01.2010, 14:28
Ребятишки, да вы что? А для чего тогда пишем
Pascal
1
2
write('Размер массива n=');
readln(n);
0
Добрый самаритянин
 Аватар для John_Pa9JIbHuK
1107 / 622 / 139
Регистрация: 31.03.2009
Сообщений: 2,567
31.01.2010, 14:39
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
31.01.2010, 14:39
Помогаю со студенческими работами здесь

Удалить из массива нулевые элементы, передвинув на их место следующие элементы без нарушения порядка
ищу решение еще одной задачи =) Задан массив действительных чисел. Удалить из массива нулевые элементы, передвинув на их место...

Удалить из массива нулевые элементы, передвинув на их место следующие элементы без нарушения порядка их следования
Удалить из массива A(n) нулевые элементы, передвинув на их место следующие элементы без нарушения порядка их следования. В результаты...

Удалить нулевые элементы массива
Помогите пожалуйста перевести в С++ uses crt; const nmax=100; var a:array of integer; n,i,j,p,x:integer; begin clrscr;...

Удалить из массива нулевые элементы
В одномерном массиве А(10) выполнить преобразования, удалив из него нулевые элементы.

Удалить нулевые элементы из одномерного массива
Подкиньте программу удаляющую из одномерного массива все 0 элементы. Заранее благодарен!


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru