|
15 / 15 / 0
Регистрация: 20.06.2010
Сообщений: 142
|
|||||||||||
Сортировка массив структур: qsort выдает Expression syntax13.06.2012, 01:27. Показов 2362. Ответов 23
Метки нет (Все метки)
Имеется код для сортировки массива структур:
0
|
|||||||||||
| 13.06.2012, 01:27 | |
|
Ответы с готовыми решениями:
23
Сортировка массива структур с использованием qsort
Error E2188 expression syntax |
|
Модератор
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
|
|
| 13.06.2012, 01:57 | |
|
0
|
|
|
15 / 15 / 0
Регистрация: 20.06.2010
Сообщений: 142
|
|
| 13.06.2012, 02:44 [ТС] | |
|
0
|
|
|
Модератор
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
|
|||||||
| 13.06.2012, 03:36 | |||||||
Сообщение было отмечено Памирыч как решение
Решение
0
|
|||||||
|
15 / 15 / 0
Регистрация: 20.06.2010
Сообщений: 142
|
|||||||
| 13.06.2012, 09:44 [ТС] | |||||||
0
|
|||||||
|
Модератор
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
|
|
| 13.06.2012, 12:24 | |
|
razer89, ошибок в коде, как у дурака махорки...
1. Что в программе на С делает #include <iostream>? Оно, конечно, ничего, если компилировать, как С++ код, но именно как С ни за какие коврижки не скомпилируется. 2. Перед объявлением структуры typedef поставьте. В таком виде объявляется безымянная структура и единственная переменная этой структуры. 3. Внешние переменные без серьёзной на то необходимости - это плохо не только по религиозным соображениям. Попробуйте отследить, сколько раз в коде файл с базой пытается открыться, при чём в разных режимах, практически без проверок, а где он при этом хоть раз закрывается - не увидел. 4. (И тут до меня дошло, что people таки внешняя переменная) при считывании из файла в массив во-первых смело создавать массив из 100 элементов не заморачиваясь, больше их в файле, меньше, а то и вовсе нет ни одного, а во вторых переменная i так всё время нулём и остаётся, то есть если бы что и считывалось - попадало бы в первый элемент массива, затирая то, что там было. Функцию сравнения по именам изменили, а остальные? Они тоже не правильные. 5. Куча опечаток, заметных, если присмотреться. Ну и функция main() всё-таки должна иметь тип int и по своему завершению возвращать целое число - код завершения (0 - успешно, не 0 - что-то пошло не так...)
1
|
|
|
15 / 15 / 0
Регистрация: 20.06.2010
Сообщений: 142
|
|||||||||||||
| 13.06.2012, 22:32 [ТС] | |||||||||||||
|
Прошу прощения за занудность, но проблема не решилась... После того, как дописал typedef перед объявлением структуры, стало выдавать ошибки в строках 64, 68 и т.д... Пишет E2108 Improper use of typedef 'people' Подскажите, как бороться?
0
|
|||||||||||||
|
15 / 15 / 0
Регистрация: 20.06.2010
Сообщений: 142
|
|
| 13.06.2012, 22:51 [ТС] | |
|
0
|
|
|
2382 / 1666 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
|
||
| 13.06.2012, 23:22 | ||
|
Добавлено через 4 минуты А вот с people надо всё-таки определиться. В основном она как переменная используется, но в функциях сравнения она вдруг используется как тип. Так это тип или переменная?
0
|
||
|
15 / 15 / 0
Регистрация: 20.06.2010
Сообщений: 142
|
||
| 13.06.2012, 23:42 [ТС] | ||
|
0
|
||
|
2382 / 1666 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
|
|
| 13.06.2012, 23:48 | |
|
ну вот это:
(people*)a это преобразование типа переменной a к указателю на people. Здесь people может быть только типом.
0
|
|
|
15 / 15 / 0
Регистрация: 20.06.2010
Сообщений: 142
|
||
| 14.06.2012, 00:18 [ТС] | ||
|
может подскажете, как будет правильно?
0
|
||
|
2382 / 1666 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
|
||||||||||||||||
| 14.06.2012, 00:24 | ||||||||||||||||
|
razer89, а я это взял из самого первого поста, ещё до easybudda
![]() Лучше тогда всё-таки объявить тип с этой структурой с каким-нибудь другим именем. Например с большой буквы, или суффикс _t прибавить, или ёщё как.
1
|
||||||||||||||||
|
Модератор
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
|
||||||||||||||||
| 14.06.2012, 01:09 | ||||||||||||||||
Сообщение было отмечено Памирыч как решение
Решение
razer89, при работе с файлами проверок много не бывает. По-хорошему нужно проверять всё, что проверяется. Писать полностью по заданию мне лень, вот пример из заголовка и двух програмок - одна в файл пишет, другая из него читает и сортирует по-всякому:
persons.h
persons_write.c
persons_read.c
1
|
||||||||||||||||
|
15 / 15 / 0
Регистрация: 20.06.2010
Сообщений: 142
|
|||||||||||
| 14.06.2012, 01:50 [ТС] | |||||||||||
|
easybudda, спасибо большое за примеры. Код поправил, теперь он начал компилироваться)) Но работать он все равно почему-то не хочет... Вот что добавил в коде:
0
|
|||||||||||
|
2382 / 1666 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
|
|
| 14.06.2012, 01:55 | |
|
Здесь Peoples это указатель. Но он, похоже, указывает в никуда. Память-то под эту структуру где-нибудь выделялась?
1
|
|
|
15 / 15 / 0
Регистрация: 20.06.2010
Сообщений: 142
|
|
| 14.06.2012, 03:05 [ТС] | |
|
grizlik78, кажется, я понял, в чем ошибка... Сейчас поправлю!
Добавлено через 1 час 7 минут grizlik78, easybudda, огромное вам человеческое спасибо! Разобрался! Все дело было в том, что я путал понятия ТИПА и самой ПЕРЕМЕННОЙ, также у меня беда с указателями (позор мне...). Буду учиться! Спасибо еще раз! Если кому интересно, могу позже выложить весь код.
1
|
|
|
Модератор
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
|
|
| 14.06.2012, 03:25 | |
|
1
|
|
|
15 / 15 / 0
Регистрация: 20.06.2010
Сообщений: 142
|
|
| 14.06.2012, 20:33 [ТС] | |
|
Ребят, еще такой вопрос. Как реализовать удаление определенных структур из файла? Записывать новые знаю как, а вот с удалением не могу разобраться...
0
|
|
| 14.06.2012, 20:33 | |
|
Помогаю со студенческими работами здесь
20
Qsort() для сортировки структур по дате (struct tm) Блочная сортировка структур (Отсортировать массив структур по фамилии) Выдает ошибку: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Символьное дифференцирование
igorrr37 13.02.2026
/ *
Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2).
Унарный минус обозначается как !
*/
#include <iostream>
#include <stack>
#include <cctype>. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|