![]() |
|
Модераторы: Poseidon |
![]()
|
|
| Жука |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 21.3.2007 Репутация: нет Всего: нет |
Всех приветствую!У меня опять проблема...
И выглядит она так:описать структуру с именем PRICE, содержащую следующие поля: • TOVAR — название товара; • MAG — название магазина, в котором продается товар; • STOIM — стоимость товара в руб. 2. Написать программу, выполняющую следующие действия: • ввод с клавиатуры данных в список SPISOK, состоящий из восьми эле¬ментов типа PRICE; записи должны быть размещены в алфавитном по¬рядке по названиям товаров; • вывод на экран информации о товаре, название которого введено с клавиа¬туры; • если таких товаров нет, выдать на дисплей соответствующее сообщение. Все это надо реализовать в виде односвязного списка.Я вроде со всем разобралась, кроме сортировки..Там с этими указателями совсем запуталась.И еще - нельзя пользоваться qsort. Помогите пожалуйста!) |
|||
|
||||
| Xenon |
|
||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1529 Регистрация: 12.4.2006 Репутация: 19 Всего: 50 |
Можно так
Можно так
Это сообщение отредактировал(а) Xenon - 29.4.2007, 23:48 |
||||
|
|||||
| Жука |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 21.3.2007 Репутация: нет Всего: нет |
СПАСИБО КОНЕЧНО, но тут слишком сложно..У меня есть функция сортировки массива структур по алфавиту.
Нельзя ли как нибудь ее переделать с указателями?? |
|||
|
||||
| apook |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 794 Регистрация: 12.7.2006 Репутация: 10 Всего: 23 |
Что то мне подсказывает что это ни какая не сортировка по алфавиту, а странная сортировка по длинне названия товара
-------------------- Мои руки из дуба, голова из свинца ну и пусть ... |
|||
|
||||
| zkv |
|
|||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: 21 Всего: 92 |
||||
|
||||
| Жука |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 21.3.2007 Репутация: нет Всего: нет |
ээээ...ну может быть
|
|||
|
||||
| Xenon |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1529 Регистрация: 12.4.2006 Репутация: 19 Всего: 50 |
Жука, сложно? Хм ... Ну ты побольше информации дай. Вот из твоего кода я вижу некое типа Spisok, при чем с операцией индексации, что-то мне подсказывает, что "список" в твоем случае - простой массив одномерный? Если да, то можно переписать пример попроще.
|
|||
|
||||
| Xenon |
|
||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1529 Регистрация: 12.4.2006 Репутация: 19 Всего: 50 |
Упростил сделав с массивом:
Ну раз на то пошло ... если с STL не очень:
Это сообщение отредактировал(а) Xenon - 1.5.2007, 00:11 |
||||
|
|||||
| Жука |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 21.3.2007 Репутация: нет Всего: нет |
Мне эту задачку надо через односвязный список сделать, следовательно надо пользоваться указателями, которые я вообще не поняла.А сортировку с ними сделать вообще не смогу.И компилятор у меня древнегреческий, std не воспринимает.Вот такие дела.
Вот значит как я начала эту задачу делать(формирование и вывод на экран списка).Осталось только сортировку сделать)
ОЧЕНЬ-ОЧЕНЬ прошу, помогите пожалуйста! |
|||
|
||||
| dizzy1984 |
|
||||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 675 Регистрация: 15.2.2007 Репутация: 10 Всего: 25 |
Назвались бы a1b2 я бы вам сразу помог.
По "Жука" можно и не понять что вы девушка, а от этого, как вы знаете, многое зависит... Мое решение не будет красивым и правильным, но оно будет рабочим и вы сможете его использовать.
После вызова функции
Список будет отсортирован по полю
Моя идея сводится к тому, чтобы заставить стандартный алгоритм пузырьковой сортировки работать со списком. Для этого пришлось написать функцию возвращающую элемент по его порядковому номеру. И функцию обмена 2-х смежных элементов списка. Вот пример использования
Результат такой КАПУСТА->КУРЬЯ НОЖКА->МАСЛО->ПАМИДОР->ПЛОВ->САЛАТ->СМЕТАНА->СНИКЕРС->ФАРШ->ХРЕН Я использовал для компиляции vc60, так что если будут трения, напишите |
||||||||
|
|||||||||
| Жука |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 21.3.2007 Репутация: нет Всего: нет |
dizzy1984, БОЛЬШУШЕЕ ВАМ СПАСИБО, которое к сожалению в карман не положишь(((
Только с пониманием вашего решения у меня не складывается( Не могли бы вы мне обьяснить? Ну пожааааалуйста)
много-много раз ПОЖАЛУЙСТА обьясните что к чему) |
|||
|
||||
| dizzy1984 |
|
||||||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 675 Регистрация: 15.2.2007 Репутация: 10 Всего: 25 |
Ради тебя я готов положить его и в карман.
В тот раз у меня была отрицательная репутация и мне хотелось ее исправить. Я не требую повышать свою репутацию за ответы. А давай на ты. Меня, кстати, зовут саша. Сначала общё
Изначально функция была призвана сортировать массив, который бы передавался ей как int *pArr. Но у нас другая структура данных - односвязный список. Что это такое я думаю ты уже в курсе. Это некая структра, одно из полей которой ссылается на такую же структуру (извиняюсь за тавтологию). Когда список подходит к концу, это поле имеет значение NULL. В пузырьковой сортировке мы могли получать элемент с индексом i pArr[i] и обменивать 2 элемента с индексами i и j (swap(pArr[i], pArr[j])). В то время как для сортировки односвязных списков наверняка есть специальные алгоритмы, я решил применить для этой цели пузырьковую сортировку. Мне нужен был эквивалент pArr[i] и им стал GetNodeAtIndex, а также swap(pArr[i], pArr[j]) которым стал Swap2AdjacentNodes. И тогда фунция пузырьковой сортировки стала сортировать список. Конкретно по фунциям
Если что-то не ясно, то. 1. Возьми Книгу Си Подбельского, прочитай главу про указатели. 2. С карандашиком и листком, с окошком Debug->Inspect протрассируй программу и посмотри что происходит в памяти. Ну и конечно не смущйся спрашивай, всегда отвечу. |
||||||||||
|
|||||||||||
| apook |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 794 Регистрация: 12.7.2006 Репутация: 10 Всего: 23 |
Функция strcmp действительно помогает при сортировке массива, но
я не врублюсь каким почему? Вот программку набросал и она работает
-------------------- Мои руки из дуба, голова из свинца ну и пусть ... |
|||
|
||||
| dizzy1984 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 675 Регистрация: 15.2.2007 Репутация: 10 Всего: 25 |
||||
|
||||
| Жука |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 21.3.2007 Репутация: нет Всего: нет |
dizzy1984, не боюсь показаться предсказуемой, но хочу сказать тебе(раз уж сам предложил перейти на "ты", то я этим уже пользуюсь), ОГРОМНОЕ-ПРЕОГРОМНОЕ СПАСИБО)
П.С. меня, кст, зовут оля. apook, вам тоже СПАСИБОЧКИ) |
|||
|
||||
![]()
|
| Правила форума "Центр помощи" | |
|
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Центр помощи | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |