![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
bonapart |
|
|||
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 10.10.2013 Репутация: нет Всего: нет |
Дан массив действительных чисел, содержащий 25 элементов, записать в этот же массив сначала все положительные числа и нули, а затем все отрицательные, сохраняя порядок их следования.
Помогите доделать.
Это сообщение отредактировал(а) bonapart - 10.10.2013, 19:33 |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
Сначала оформи код, чтобы его можно было читать. А потом мы поможем.
|
|||
|
||||
feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 12 Всего: 45 |
С удовольствием, но Ваш код не годится. Как понять смешение указателя и индекса: и синтаксический наворот: У Вас всё это компилировалось? Если стоит ограничение в один единственный массив, то тактически задача решается правильно: выдавливаются отрицательные элементы в конец массива. Но стратегически, увы, код не возможно оценить, так как не ясен наворот с обменом элементов, а на вид порядок следования элементов не сохраняется. Это сообщение отредактировал(а) feodorv - 12.10.2013, 10:38 -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
shuttle |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 230 Регистрация: 9.4.2008 Репутация: нет Всего: нет |
заводишь второй массив, перебираешь исходный, если число больше нуля то записываешь во второй массив. потом еще раз перебираешь и записываешь нули и затем отрицательные числа. потом второй массив переписываешь в первый.
--------------------
|
|||
|
||||
baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 15 Всего: 101 |
почему нет? выражает конечно не то что надо, но как-то работать будет Добавлено @ 20:53 нечестно, надо на месте
похоже идея была такая: однопроходный алгоритм с двумя встречными циклами 1. ищем отрицательный элемент. 2. пока следующий элемент положителен, обмениваем со следующим 3. ищем положительный элемент 4. пока предыдущий элемент отрицателен, обмениваем с предыдущим 5. продолжаем с позиции, достигнутой в п.3 осталось маленько доделать Это сообщение отредактировал(а) baldina - 18.10.2013, 20:54 |
|||
|
||||
baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 15 Всего: 101 |
bonapart,
pi (адрес памяти) бессмысленно сравнивать с N (числом элементов). его надо сравнивать тоже с адресом - элемента за концом массива, который вычисляется как a+N видимо вместо запятой должно быть логическое И, записываемое как && ну и про сравнение указателя с числом то же, что и в пред. пункте Добавлено через 3 минуты и 18 секунд и еще про этот цикл: он бесконечный, т.к. chislo не меняется Это сообщение отредактировал(а) baldina - 18.10.2013, 21:00 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "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. |