Форум программистов, компьютерный форум CyberForum.ru

Перед каждым положительным значением массива вставить элемент с нулевым значением - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
Kokocikful
0 / 0 / 0
Регистрация: 12.12.2012
Сообщений: 24
07.06.2013, 16:59     Перед каждым положительным значением массива вставить элемент с нулевым значением #1
Дан массив размера N. Перед каждым положительным значением массива вставить элемент с нулевым значением.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.06.2013, 16:59     Перед каждым положительным значением массива вставить элемент с нулевым значением
Посмотрите здесь:

C++ Однонаправленный связанный список (Вставить новый узел с нулевым значением перед первым отрицательным элементом...)
Перед каждым положительным элементом массива вставить элемент с нулевым значением, перезаписать эти элементы во второй массив C++
Вставить перед каждой серией массива элемент с нулевым значением. C++
C++ Функция, которая вставляет перед каждым отрицательным элементом элемент с нулевым значением
C++ Перед каждым вторым отрицательным значением в массиве вставить нулевое значение
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Expocooky
 Аватар для Expocooky
56 / 56 / 2
Регистрация: 06.06.2013
Сообщений: 112
07.06.2013, 17:28     Перед каждым положительным значением массива вставить элемент с нулевым значением #2
Если массив заполнен, больше элементов туда не добавишь
MikeSoft
Эксперт C++
 Аватар для MikeSoft
3781 / 1765 / 85
Регистрация: 21.11.2009
Сообщений: 2,540
07.06.2013, 18:07     Перед каждым положительным значением массива вставить элемент с нулевым значением #3
Цитата Сообщение от Expocooky Посмотреть сообщение
Если массив заполнен, больше элементов туда не добавишь
Но ведь никто не запрещает создать массив нужной величины и скопировать туда исходный с нужными правками.
По сути, простое решение:
1. От начала до конца пройтись по массиву N, проверяя и инкрементируя счетчик положительных элементов (С).
2. Выделить память под новый массив M размерностью С.
3. От начала до конца пройтись по массиву N, проверяя текущий элемент. Если значение положительное - записать "0" и значение в массив C, увеличить итератор для массива C. Если отрицательное - просто скопировать и увеличить итератор.

Реализовывайте. Будут сложности - помогу.
Expocooky
 Аватар для Expocooky
56 / 56 / 2
Регистрация: 06.06.2013
Сообщений: 112
07.06.2013, 18:26     Перед каждым положительным значением массива вставить элемент с нулевым значением #4
Цитата Сообщение от MikeSoft Посмотреть сообщение
Но ведь никто не запрещает создать массив нужной величины и скопировать туда исходный с нужными правками.
Судя по сообщению автора, он собирается добавлять элементы именно в исходный массив либо просто не понимает задания.
С вашим решением согласен
MikeSoft
Эксперт C++
 Аватар для MikeSoft
3781 / 1765 / 85
Регистрация: 21.11.2009
Сообщений: 2,540
07.06.2013, 18:30     Перед каждым положительным значением массива вставить элемент с нулевым значением #5
Цитата Сообщение от Expocooky Посмотреть сообщение
Судя по сообщению автора, он собирается добавлять элементы именно в исходный массив либо просто не понимает задания.
Либо использует связные списки. Но в любом случае, согласен, уточнения по заданию явно не помешают.
Kokocikful
0 / 0 / 0
Регистрация: 12.12.2012
Сообщений: 24
07.06.2013, 21:31  [ТС]     Перед каждым положительным значением массива вставить элемент с нулевым значением #6
Добавлено через 22 секунды
MikeSoft, Сказали, что нужно создать второй массив, и уже туда скинуть все. Можно хотяб примерный код этого, с комментами если, не сложно, не знаю как переместить во второй массив

Добавлено через 1 час 0 минут
Expocooky, Сказали, что нужно создать второй массив, и уже туда скинуть все. Можно хотяб примерный код этого, с комментами если, не сложно, не знаю как переместить во второй массив
sm1992
2 / 2 / 0
Регистрация: 27.05.2013
Сообщений: 8
07.06.2013, 23:05     Перед каждым положительным значением массива вставить элемент с нулевым значением #7
если я правильно понял то обработка будет выглядеть примерно так
C++
1
2
3
for(int i=1;i<n;i++)
if (mas[i]>0)
mas[i-1]=0;
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.06.2013, 15:00     Перед каждым положительным значением массива вставить элемент с нулевым значением
Еще ссылки по теме:

Вставить после каждой серии массива элемент с нулевым значением C++
Перед элементом массива с порядковым номером K вставить новый элемент с нулевым значением C++
C++ Перед каждым положительным элементом массива вставить нулевой элемент

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

Или воспользуйтесь поиском по форуму:
MikeSoft
Эксперт C++
 Аватар для MikeSoft
3781 / 1765 / 85
Регистрация: 21.11.2009
Сообщений: 2,540
09.06.2013, 15:00     Перед каждым положительным значением массива вставить элемент с нулевым значением #8
Цитата Сообщение от Kokocikful Посмотреть сообщение
не знаю как переместить во второй массив
Перемещение, в вашем случае, - это обычное присваивание.
C++
1
m[i] = n[j];
m - созданный вами массив.
n - исходный массив
i, j - индексы элементов.
Yandex
Объявления
09.06.2013, 15:00     Перед каждым положительным значением массива вставить элемент с нулевым значением
Ответ Создать тему
Опции темы

Текущее время: 03:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru