Сортировка массив структур: qsort выдает Expression syntax - C (СИ)
Формулировка задачи:
Имеется код для сортировки массива структур:
При вызове функции
Листинг программы
- qsort (base, n, sizeof(people), namecmp);
Листинг программы
- int namecmp (const void * a, const void * b)
- {
- return strcmp (((people*)a).FIO, ((people*)b).FIO);
- }
namecmp
пишет: E2188 Expression syntax. Не могу понять, в чем ошибка?Решение задачи: «Сортировка массив структур: qsort выдает Expression syntax»
textual
Листинг программы
- #ifndef _PERSONS_H_
- #define _PERSONS_H_ 1
- #include <string.h>
- #define NAME_LENGTH 32
- #define DB_FILE "persons.db"
- typedef struct PERSON {
- char name[NAME_LENGTH];
- int growth;
- double weight;
- } person_t;
- int name_cmp(const void * a, const void *b) {
- return strcmp(((person_t*)a)->name, ((person_t*)b)->name);
- }
- int growth_cmp(const void * a, const void * b) {
- return ((person_t*)a)->growth - ((person_t*)b)->growth;
- }
- int weight_cmp(const void * a, const void * b) {
- double d = ((person_t*)a)->weight - ((person_t*)b)->weight;
- return ( d < 0.0 ) ? -1 : ( d > 0.0 ) ? 1 : 0;
- }
- void dump(const person_t * pPerson) {
- printf("%-20s %6d %6.1f\n", pPerson->name, pPerson->growth, pPerson->weight);
- }
- #endif /* _PERSONS_H_ */
Объяснение кода листинга программы
В данном коде происходит сортировка массива структур person_t, который представляет собой набор данных о людях. Структура person_t содержит поля: name (имя), growth (рост), weight (вес). Код содержит три функции сравнения:
- name_cmp - сравнивает имена людей.
- growth_cmp - сравнивает рост людей.
- weight_cmp - сравнивает вес людей. Также в коде есть функция dump, которая выводит данные о человеке в консоль в отсортированном виде. Код определяет препроцессорные директивы для включения и исключения файла, в котором он находится, и определяет номер версии файла. Включаемый файл может быть подключен к другим файлам, чтобы использовать функции сортировки и вывода данных.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д