![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
Thundaga |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 25.5.2009 Репутация: 1 Всего: 1 |
zim22
В частном случае n=2. То есть - нужно удалять все пары одинаковых чисел (не обязательно идущие подряд) в массиве. К примеру при задании числа элементов семи и вводе, к примеру: 1 2 2 3 4 4 5 будет выведено: 1 3 5. Проблема в том что если последний элемент тоже в паре с каким-либо, то при попытке удалить его программа выдает ошибку (вполне возможно, что вы, если проводили тесты, заметели). Хотелось бы узнать её причину, так как в остальном программа описанная в начале работает корректно. Буду очень благодарен. Это сообщение отредактировал(а) Thundaga - 25.5.2009, 21:07 |
|||
|
||||
zim22 |
|
|||
![]() depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 29 Всего: 69 |
Это сообщение отредактировал(а) zim22 - 26.5.2009, 06:34 |
|||
|
||||
Thundaga |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 25.5.2009 Репутация: 1 Всего: 1 |
zim22
Если сдвиг делать в любом случае, то некоторые элементы будут "выпадать". К примеру: 1 1 2 2 3 При удалении первой пары будет получено 2 2 3, однако счет пойдет от второй двойки и её пара не будет найдена. В лучшем случае (в 3 тестах из пяти, с вашим отрывком) выводилось 2 3. Хм, если судить по замечаниям дебаггера, то ошибка находится на 30 строке. Пишет что helper не задан (если надо удалять последний элемент и пару к нему). |
|||
|
||||
zim22 |
|
|||
![]() depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 29 Всего: 69 |
Thundaga, также вашу задачу можно решить за 2 прохода по циклу.
1 проход: считываем значения элементов в map<int, int> (ключ - значение элемента, value - количество повторений) 2 проход: все элементы, у которых map[key] > n - удалить ** т.к. элементы вы вводите с клавиатуры, то первый проход можно не делать, а сразу строить map Это сообщение отредактировал(а) zim22 - 26.5.2009, 08:48 |
|||
|
||||
Thundaga |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 25.5.2009 Репутация: 1 Всего: 1 |
zim22
Огромное вам спасибо. Хотя с этой программой справился иным путем (созданием уникального закрывающего элемента), но в еще одном случае этот совет неоценим. Искренне благодрю вас и gosn1ck за оказанную помощь. Спасибо. |
|||
|
||||
zim22 |
|
|||
![]() depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 29 Всего: 69 |
||||
|
||||
Thundaga |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 25.5.2009 Репутация: 1 Всего: 1 |
zim22
Код пока не оптимизирован, однако вот нынешний вариант:
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |