Сортировка массив структур: qsort выдает Expression syntax - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Имеется код для сортировки массива структур:
Листинг программы
  1. qsort (base, n, sizeof(people), namecmp);
Листинг программы
  1. int namecmp (const void * a, const void * b)
  2. {
  3. return strcmp (((people*)a).FIO, ((people*)b).FIO);
  4. }
При вызове функции

namecmp

пишет: E2188 Expression syntax. Не могу понять, в чем ошибка?

Решение задачи: «Сортировка массив структур: qsort выдает Expression syntax»

textual
Листинг программы
  1. #ifndef _PERSONS_H_
  2. #define _PERSONS_H_ 1
  3.  
  4. #include <string.h>
  5.  
  6. #define NAME_LENGTH 32
  7. #define DB_FILE "persons.db"
  8.  
  9. typedef struct PERSON {
  10.     char   name[NAME_LENGTH];
  11.     int    growth;
  12.     double weight;
  13. } person_t;
  14.  
  15. int name_cmp(const void * a, const void *b) {
  16.     return strcmp(((person_t*)a)->name, ((person_t*)b)->name);
  17. }
  18.  
  19. int growth_cmp(const void * a, const void * b) {
  20.     return ((person_t*)a)->growth - ((person_t*)b)->growth;
  21. }
  22.  
  23. int weight_cmp(const void * a, const void * b) {
  24.     double d = ((person_t*)a)->weight - ((person_t*)b)->weight;
  25.     return ( d < 0.0 ) ? -1 : ( d > 0.0 ) ? 1 : 0;
  26. }
  27.  
  28. void dump(const person_t * pPerson) {
  29.     printf("%-20s %6d %6.1f\n", pPerson->name, pPerson->growth, pPerson->weight);
  30. }
  31.  
  32. #endif /* _PERSONS_H_ */

Объяснение кода листинга программы

В данном коде происходит сортировка массива структур person_t, который представляет собой набор данных о людях. Структура person_t содержит поля: name (имя), growth (рост), weight (вес). Код содержит три функции сравнения:

  1. name_cmp - сравнивает имена людей.
  2. growth_cmp - сравнивает рост людей.
  3. weight_cmp - сравнивает вес людей. Также в коде есть функция dump, которая выводит данные о человеке в консоль в отсортированном виде. Код определяет препроцессорные директивы для включения и исключения файла, в котором он находится, и определяет номер версии файла. Включаемый файл может быть подключен к другим файлам, чтобы использовать функции сортировки и вывода данных.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.2 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы