![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
Kruger2 |
|
||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 94 Регистрация: 9.1.2011 Репутация: нет Всего: нет |
Известная задача, в интернете есть много вариантов, но я не могу нормально реализовать сортировку по алфавиту.
Вот условие: 1. Описать структуру с именем ТRAIN, содержащую следующие поля: • NAZN - название пункта назначения; • NUMR - номер поезда; • ТIМЕ - время отправления. 2. Написать программу, выполняющую следующие действия: • ввод с клавиатуры данных в массив RASР, состоящий из восьми элемен¬тов типа ТRAIN; записи должны быть размещены в алфавитном порядке по названиям пунктов назначения; • вывод на экран информации о поездах, отправляющихся после введенного с клавиатуры времени; • если таких поездов нет, выдать на дисплей соответствующее сообщение. Вот задача:
Каким образом создать сортировку? Допустим будут строки: London Astana Moscow Kiev Надо раскидать их по алфавиту, от а к z. Если рассматривать как двумерный массив, то мне необходимо сравнивать первый элемент 1ой строки с первым элементов 2ой , если он больше, то поднять вверх всю строку и т.д. Но у меня массив NAZN(название города) объявлен как одномерный. У меня вообще нет тут двумерного массива, что бы попробовать пузырьковою конструкцию типа:
Или в этом случае я зафиксировал вообще нулевой элемент и надо вот так? Но всё равно у меня нет двухмерного массива и я не могу сравнивать именно нулевой элемент каждой строки ((
Это сообщение отредактировал(а) Kruger2 - 14.7.2011, 16:53 |
||||||
|
|||||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 20 Всего: 110 |
юзай std::vector и std::sort
![]() |
|||
|
||||
Kruger2 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 94 Регистрация: 9.1.2011 Репутация: нет Всего: нет |
boostcoder,
Находил такие примеры, но я как бы не должен их ещё знать на этой стадии, хотя в общих чертах понимаю как работают они ![]() Добавлено через 1 минуту и 18 секунд Хотя нет, вектор не знаю вообще) |
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 20 Всего: 110 |
используй qsort(). это Си-функция для сортировки.
|
|||
|
||||
Kruger2 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 94 Регистрация: 9.1.2011 Репутация: нет Всего: нет |
Да, только по программе эта задача идет перед функциями и тем более перед указателями
![]() Это сообщение отредактировал(а) Kruger2 - 14.7.2011, 17:02 |
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 20 Всего: 110 |
вариантов куча. но это руками все писать придется... |
|||
|
||||
Kruger2 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 94 Регистрация: 9.1.2011 Репутация: нет Всего: нет |
Тут сортировка происходит в зависимости от номера поезда:
33 22 44 11 Не совсем понимаю каким образом тут происходит сортировка. Получается, i=строки, j= столбцы? Тогда каким образом строка сравнивается со столбцом О_о Добавлено через 27 секунд boostcoder, Пичалька ![]() |
|||
|
||||
borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 21 Всего: 135 |
Kruger2, в твоём одномерном массиве нет ни столбцов ни строк. Есть просто индекс.
Для лучшего понимания распечатай каждый шаг алгоритма (все переменные):
-------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
Kruger2 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 94 Регистрация: 9.1.2011 Репутация: нет Всего: нет |
Наплевал на всё и сделал как вы и советовали, boostcoder, через strcmp. Никто ведь не запрещает мне наперед учиться? Буду так и говорить
![]()
|
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 20 Всего: 110 |
Kruger2, малаца!
|
|||
|
||||
borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 21 Всего: 135 |
Kruger2, вот, посмотри алгоритмы сортировки. Только не бездумно копипасть, а внимательно разбери... Плюс можешь повставлять отладочный вывод, как я тебе показал выше...
-------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
Kruger2 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 94 Регистрация: 9.1.2011 Репутация: нет Всего: нет |
borisbn,
Спасибо, надо убегать, позже обязательно разберу. boostcoder, Тоже спасибо за наводку. Нафлужу ещё пару постов и расставлю плюсы всем ![]() |
|||
|
||||
fish9370 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 663 Регистрация: 15.4.2007 Где: Москва Репутация: 1 Всего: 1 |
вобще, strcmp реализуется довольно легко, не обязательно использовать библиотечную:
Это сообщение отредактировал(а) fish9370 - 16.7.2011, 15:53 -------------------- undefined |
|||
|
||||
volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 16 Всего: 85 |
![]() 1. Сначала мы проверили на не равенство *s1 != *s2, а потом сравниваем следующие за ними байты Автор нужно срочно читать что такое постинкрементация. Если даже исправим ошибку 1, это еще не все 2. Если s2 длиннее s1, но совпадает по начальным символам, этот код выдаст равенство. напр: s1 = "ABC"; s2 = "ABCDEFG"; Эти строки будут равны. Уважаемые велосипедисты, когда изобретаете очередной велосипед, будьте осторожны! Не пишите всякой фигни, где в среднем на 2 строчки кода по 3 ошибки!!! |
|||
|
||||
fish9370 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 663 Регистрация: 15.4.2007 Где: Москва Репутация: 1 Всего: 1 |
volatile, не нравишься ты мне
![]() -------------------- undefined |
|||
|
||||
![]() ![]() ![]() |
Правила форума "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. |