0 / 0 / 0
Регистрация: 11.12.2017
Сообщений: 6
|
|
1 | |
Все элементы массива, не равные нулю, переписать, сохраняя их порядок, в начало массива, а нулевые значения - в конец02.04.2018, 08:07. Показов 3011. Ответов 5
Метки нет (Все метки)
Создать одномерный массив A[0..N-1]. Все его элементы, не равные нулю, переписать, сохраняя их порядок, в начало массива, а нулевые значения- в конец массива. Новый массив не заводить и сортировку не применять.
Как организовать сия программу?
0
|
02.04.2018, 08:07 | |
Ответы с готовыми решениями:
5
Все элементы, не равные нулю, переписать (сохраняя их порядок) в начало, а нулевые элементы – в конец массива одномерный массив. Все его элементы, не равные нулю, переписать, сохраняя их порядок в начало массива, а нулевые элементы в конец массива in c++ Все элементы массива, не равные нулю, переписать в начало, а нулевые значения - в конец массива Все элементы массива, не равные нулю, переписать (сохраняя их порядок) в начало массива |
Прощай, Мир!
1672 / 830 / 253
Регистрация: 26.05.2012
Сообщений: 3,056
|
|
02.04.2018, 12:29 | 2 |
переписывай нулевые значения в конец массива, т.к. в общем случае нулевое значение - одно единственное, а не равные нулю - множество значений.. ищи нулевое значение в массиве, сдвигай оставшуюся часть массива на один элемент ближе к началу и помещай нулевое значение в самый конец.. и так в цикле пока не пройдут все элементы массива..
0
|
Модератор
|
||||||
03.04.2018, 07:54 | 3 | |||||
Не нужно ничего сдвигать.
Нужны два указателя, на первый "ноль" и на первый "не ноль" и обменивать содержимое по этим указателям с поиском следующего. На Pascal
Добавлено через 7 минут Или же не сокращать код за счёт перехода внутрь if, но тогда удалить строку 44, чтобы поиск следующего ненулевого элемента не возвращался "назад", а продолжил дальше.
0
|
Модератор
|
||||||
07.04.2018, 18:36 | 4 | |||||
Без ввода массива.
Да и алгоритм упростил, чтобы легче реализовать на цепочечных командах
0
|
3406 / 1825 / 489
Регистрация: 28.02.2015
Сообщений: 3,696
|
||||||
10.04.2018, 13:59 | 5 | |||||
Вариант предложенный proc3nt, и проще и покрасивей будет
1
|
Модератор
|
|
10.04.2018, 17:42 | 6 |
Constantin Cat, согласен с оговорками.
На ассемблере код короче, но не эффективнее. На Pascal реализация за 1 проход. Но на асме я запутался и сделал, как сделал, о чём честно и написал.
0
|
10.04.2018, 17:42 | |
10.04.2018, 17:42 | |
Помогаю со студенческими работами здесь
6
Все элементы массива, не равные нулю, переписать (сохраняя их порядок) в начало массива В каждой строке все элементы, не равные нулю, переписать в начало строки, а нулевые элементы – в конец массива Все элементы массива, не равные нулю, перепишите, сохраняя их порядок, в начало массива Переписать элементы массива, не равные нулю, в начало массива, а нулевые элементы - в конец массива Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |