![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
alexeikom |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 26.11.2008 Репутация: нет Всего: нет |
Всем привет,
Вопрос у меня такой. Мне дан массив, я должен найти в нем одинаковые элементы, и соответственно их ликвидировать. Теперь мне нужно сократить размер массива (так как он уже без дублей). Как мне это сделать? а то в размере массива надо обязательно указывать константу. Помогите плиз...прога на си(программку я сделал, только вот с новым размером массива застрял). Заранее благодарен. |
|||
|
||||
Dmi3ev |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1698 Регистрация: 28.11.2007 Репутация: 13 Всего: 41 |
работайте через указатели, в чем проблема?
-------------------- |
|||
|
||||
Remiznik |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 379 Регистрация: 30.4.2005 Репутация: 1 Всего: 1 |
перепиши в другой масив с меньшим размером !! иначе думаю не получиться )
|
|||
|
||||
Dmi3ev |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1698 Регистрация: 28.11.2007 Репутация: 13 Всего: 41 |
как пример выделение памяти для 100 целых чисел Добавлено @ 00:10
Remiznik, хорошо, а как задать размер этого массива??? Заранее ведь неизвестно, сколько будет дублей ))) Это сообщение отредактировал(а) Dmi3ev - 8.12.2008, 00:11 -------------------- |
||||
|
|||||
alexeikom |
|
||||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 26.11.2008 Репутация: нет Всего: нет |
А можно плиз пример, а то я в танке... ![]()
Вот в этом и проблема. Как его создать, когда его размер зависит от результата. Тоесть у меня был массив из 20 элементов. 4 ушло. Надо создать массив из 16. Так вот эти 16 мне заранее не известны (так-как это зависит от числа дублированных элементов массива). |
||||
|
|||||
Remiznik |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 379 Регистрация: 30.4.2005 Репутация: 1 Всего: 1 |
вот тут и используешь указатели ... когда получиш значение сколько осталось элементов создаёшь новый масив такоко размера и переписываешь туда значения! |
|||
|
||||
Dmi3ev |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1698 Регистрация: 28.11.2007 Репутация: 13 Всего: 41 |
а можно вот так, а обращаться потом вот так:
должно быть ясно, а вообще можно и почитать немного. -------------------- |
||||
|
|||||
alexeikom |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 26.11.2008 Репутация: нет Всего: нет |
http://forum.vingrad.ru/topic-189118.html
самые первый пример с так называемым динамическим массивом, когда его размер задается не-константой. Такое возможно? Добавлено через 9 минут и 33 секунды Вообщем я так понял без указателей никак? |
|||
|
||||
Dmi3ev |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1698 Регистрация: 28.11.2007 Репутация: 13 Всего: 41 |
Тебе же говорят тут русским языком. Ты попробовал? не получилось? => Надо действовать так, как дальше в статье говорится или как я посоветовал, что одно и тоже)) Добавлено через 13 минут и 46 секунд
мне на ум это пришло срузу))) динамический массив - значит указатели. Это очень удобно, хотя немного мудренно кажется по началу, я Вас прекрасно понимаю))) Но надо не бояться использовать их в таких ситуациях. -------------------- |
||||
|
|||||
alexeikom |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 26.11.2008 Репутация: нет Всего: нет |
Я и хотел это узнать...с указателями я понял...Просто мы в институте еще указатели не проходили, и я подумал, что может можно обойтись без них...но если нет, то все ок... Большое спасибо за помощь! ![]() |
|||
|
||||
Rickert |
|
|||
![]() Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: нет Всего: 52 |
Если вы в институте ещё не проходили указатели, а вас попросили написать такую программу, ты вы неверно поняли задание. наверное оно звучало примерно так: "Найти в массиве все одинаковые значения и вывести на экран массив уже без них, т.е. с одной копией каждого числа." В таком случае у вас нет необходимости работать с дин. массивами, всё что вам нужно - это создать два одинаковых по размеру массива, первый - изначальный, а второй - который будет содержать все элементы в одном экземпляре. Очевидно, что второй массив юудет либо равен, либо меньше по размеру первого.
-------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
А зачем вообще менять размер массива? Кто и где это сказал? Надо лишь переставить элементы так, чтобы массив был непрерывным. А это делается примерно так:
|
|||
|
||||
REZiaMIX |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 346 Регистрация: 3.11.2007 Репутация: 1 Всего: 4 |
Странно , обычно везде кричат , буст , стл. Почему до сих пор никто не предложил использовать контейнеры stl ??? erase - и нету элемента.
Да и удаление дубликатов обойдется в пару строк. Если конечно не стоит четкая задача использовать массивы. -------------------- ![]() |
|||
|
||||
Dmi3ev |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1698 Регистрация: 28.11.2007 Репутация: 13 Всего: 41 |
REZiaMIX, я, допустим, не знаю, есть ли все эти прелести в си, поэтому и не предлагал использовать контейнеры vector, list и тд
-------------------- |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
а я уверен, что их там нет
![]() REZiaMIX, читай внимательно первый пост - там русским языком написано, каким языком человек пользуется. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |