94 / 41 / 23
Регистрация: 18.09.2016
Сообщений: 379
|
|||||||||||||||||||||
1 | |||||||||||||||||||||
Сортировка списка по всем полям в любых направлениях. Использовать указатели на функции03.05.2017, 10:59. Показов 1818. Ответов 6
Метки нет (Все метки)
В общем, я запутался.
Вот задание. Необходимо разработать программу согласно варианту задания. При реализации использовать указатели на функции и (или) массивы указателей на функции. -------------------------------------------------- Дан список записей типа ТОВАР (размер списка и его элементы вводятся пользователем). Упорядочить список по любому из полей в любом направлении. Поле и направление выбирает пользователь. В функцию сортировки должен передаваться указатель на функцию сравнения двух элементов. (20 баллов). ТОВАР: - наименование товара (строка 15 символов); - единицы измерения (строка 5 символов); - цена (вещественное число с двумя знаками после запятой); - количество (целое положительное число). То, что накалякано
дело в том, что я не могу понять, как мне обращаться к началу памяти одного и того же поля в массиве структур. Делал такое с обычными массивами, вроде всё работало. Вот как делал:
На эти строки на намекать. Исправил Добавлено через 3 минуты В общем, для сортровки по кол - ву работает вроде.
Добавлено через 9 минут В общем, пока работает. Если найдёте грабли ещё, укажите, пожалуйста.
0
|
03.05.2017, 10:59 | |
Ответы с готовыми решениями:
6
Сортировка и фильтрация всех записей БД по всем полям Ищем похожих. Сортировка списка, по разным полям Не могу разобраться с PostgreSQL. Поиск по всем таблицам и всем полям? Сортировка линейного однонаправленного списка пузырьком через указатели |
1786 / 1036 / 445
Регистрация: 12.05.2016
Сообщений: 2,550
|
||||||
03.05.2017, 14:12 | 2 | |||||
Сообщение было отмечено Michail97 как решение
Решение
0
|
94 / 41 / 23
Регистрация: 18.09.2016
Сообщений: 379
|
||||||
03.05.2017, 17:42 [ТС] | 3 | |||||
shvyrevvg, спасибо. Ваша программа хороша, но я ещё как бы по учебной программе не проходил быстрые и медленные сортировки. Следующей темой рекурсия и по ней 3 лабы.) Хоара знаю, но мало использую. Пока что только выбор.
Можете посмотреть код? Всё ли терпимо?
0
|
1786 / 1036 / 445
Регистрация: 12.05.2016
Сообщений: 2,550
|
|
03.05.2017, 18:10 | 4 |
Имена странные, с ходу, не понятно что означают Good, Ptr(указатель на что?)
Тут какая-то магия fflush-ить ввод не стоит, он для вывода предназначен. Тем более Вы раньше в цикле getchar() гоняли, почему тут также не сделать? Имена странные, вроде как list Ptr, а приводится к Good*, почему calloc, а не malloc? Почему все в одну строку? Снова какая-то магия непонятная Почему не сделать функцию сортировки, по аналогии с qsort, которая будет принимать массив, количество элементов массива, размер одного элемента и компаратор?
0
|
94 / 41 / 23
Регистрация: 18.09.2016
Сообщений: 379
|
|
03.05.2017, 18:55 [ТС] | 5 |
shvyrevvg,
1. Ну да имена так себе. Согласен, если смотреть со стороны непонятно. 2. Магия служит для предотвращения ввода недопустимых символов и отрицательных чисел. 3. Флашить согласен. Нестандартное поведение функции - освобождение потока ввода. Просто решил разнообразить, а не писат всё время getchar) 4. Да, можно было преобразовать к типу ptr, а не good. За это бы получил 5. В одну строку, потому что не хочется растягивать код) 6. Заменил все комператоры на sort_by в зависимости от индекса. Комператоры для имени и единицы измерения совпадают, поэтому 2 раза ноль. 7. функция сортировки довольно простая, даже не требует знать, какого типа данные, только надо передать указатель на начало памяти нужного поля в структуре, а потом с периодом, равным памяти структуры прыгать по полям массива структур. В общем, мне ваш код все равно больше нравится. Как пройду быстрые сортировки, сразу же буду использовать qsort частенько. Добавлено через 4 минуты shvyrevvg, calloc по определению предназначен для массивов, malloc для чего угодно, как в принципе и calloc. Разницы большой не вижу.
0
|
1786 / 1036 / 445
Регистрация: 12.05.2016
Сообщений: 2,550
|
||||||
03.05.2017, 19:19 | 6 | |||||
Можно и без qsort
0
|
94 / 41 / 23
Регистрация: 18.09.2016
Сообщений: 379
|
|
03.05.2017, 19:28 [ТС] | 7 |
shvyrevvg, ниет, стремиться надо к быстрому, а пузырёк по своей воле я никогда не буду использовать.
1
|
03.05.2017, 19:28 | |
03.05.2017, 19:28 | |
Помогаю со студенческими работами здесь
7
Сортировка постов по произвольным полям ACF. В разных рубриках по разным полям Поиск по всем полям группировка по всем полям Поиск по всем полям в БД Поиск по всем полям Проход по всем полям таблицы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |