Отсортировать записи в массиве по алфавиту - C (СИ)

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

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

Нужно отсортировать записи в массиве по алфавиту. Записать в виде функции. void sort(WORKER* mas, int);//Функция для сортировки массива по алфавиту

Решение задачи: «Отсортировать записи в массиве по алфавиту»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
typedef char name_t[32];
typedef double money_t;
 
typedef struct WORKER {
    name_t name;
    money_t salary;
} worker_t;
 
void dump(const worker_t * workers, size_t count) {
    while ( count-- ) {
        printf("%s\t$%.02f\n", workers->name, workers->salary);
        ++workers;
    }
}
 
int name_cmp(const void * a, const void * b) {
    return strcmp(((worker_t*)a)->name, ((worker_t*)b)->name);
}
 
#define elements_count(arr) ( sizeof(arr) / sizeof(*(arr)) )
 
int main(void) {
    worker_t workers[] = { 
        { "Petrov", 1200.0 },
        { "Sidorov", 1000.0 },
        { "Ivanov", 900.0 }
    };
 
    qsort(workers, elements_count(workers), sizeof(worker_t), name_cmp);
    dump(workers, elements_count(workers));
 
    return 0;
}

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

В данном коде происходит сортировка массива структур типа WORKER по алфавиту на языке C. Код объявляет три типа данных:

  1. name_t - массив символов для хранения имени работника (до 32 символов).
  2. money_t - тип данных для хранения зарплаты работника (число с плавающей точкой).
  3. worker_t - структура, объединяющая в себе два поля: имя работника (name_t) и его зарплата (money_t). Далее определены две функции:
  4. dump - выводит на экран информацию о работниках в заданном массиве в формате Имя\tЗарплата\n.
  5. name_cmp - функция сравнения, используемая для сортировки массива. Сравнивает поля name структур worker_t. В функции main создается массив структур worker_t с тремя элементами. Затем, с помощью функции qsort, этот массив сортируется по алфавиту (с использованием функции name_cmp) и выводится на экран с помощью функции dump. Код работает корректно при условии, что все указанные типы данных и функции были правильно определены и работают правильно.

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


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

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

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