Отсортировать массив структур TTrain в алфавитном порядке их поля nazv - C (СИ)

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

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

Здравствуйте. Стоит задача отсортировать массив структур TTrain в алфавитном порядке их поля nazv Сама структура выглядит так:
struct TDate
{
    short day, month;
};
 
struct TTime
{
    short minutes, hours;
};
 
struct TTrain
{
    char nazv[50];
    unsigned short numr;
    struct TDate date;
    struct TTime time;
};
Функцию сортировки я написал самую простую — пузырьковую, однако на массив она никак не влияет. Укажите, пожалуйста, на ошибку. Функция сортировки:
void trainSort(struct TTrain *RASP, int N)
{
    for (unsigned i = 0; i < N; i++)
        for (unsigned j = N - 2; j <= 0; j--)
            if (strcmp(RASP[j].nazv, RASP[j + 1].nazv) > 0)
        {
            struct TTrain t;
            t = RASP[j];
            RASP[j] = RASP[j+1];
            RASP[j+1] = t;
        }
}

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

textual
Листинг программы
for (unsigned j = N - 2; j <= 0; j--)

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

В данном коде выполняется сортировка массива структур TTrain в алфавитном порядке их поля nazv. Список действий:

  1. for (unsigned j = N — 2; j <= 0; j--) - это цикл, который выполняется от N — 2 до 0 с шагом -1. Переменная j последовательно принимает значения N — 2, N — 3, N — 4 и так далее, пока не достигнет 0. Значение N здесь - это размер массива структур TTrain.
  2. Внутри цикла происходит сравнение и обмен элементов массива. Но в данном коде эта часть отсутствует, поэтому нам сложно сказать, что именно происходит внутри цикла. Однако, предполагается, что здесь используется алгоритм сортировки, например, пузырьком или вставками.
  3. Цикл выполняется до тех пор, пока j не станет меньше или равным 0. Это означает, что цикл выполняется до тех пор, пока не будет выполнен полный проход по массиву от N — 2 до 0. В итоге, данный код, скорее всего, выполняет сортировку массива структур TTrain в алфавитном порядке их поля nazv.

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


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

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

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