Сортировка массив структур: 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 (вес). Код содержит три функции сравнения:

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

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


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

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

5   голосов , оценка 4.2 из 5
Похожие ответы